[자바 인강] 4주차 학습일지

5. 여러가지 자료구조

자료구조
효율적인 자료구조 -> 프로그램 수행속도 상향, 성능 좋은 알고리즘

  • 선형 자료구조
    배열 - 정해진 메모리를 할당받음
    연결리스트 - 자료가 추가될 때마다 메모리 할당, 자료는 링크로 연결됨
    스택 - LIFO(후입선출) push - pop
    큐 - FIFO(선입선출) enqueue - dequeue
  • 비선형 자료구조
    트리(Tree)
    힙(heap) - 우선 큐를 구현
    이진트리(binary tree) - 부모노드에 자식노드가 두개 이하
    이진 검색 트리(Binary Search Tree) - 자료(key)의 중복을 허용 X
    왼쪽 자식 노드 < 부모노드 < 오른쪽 자식 노드

그래프(Graph)
그래프 구현 방법 :
인접 행렬(adjacency matrix)
인접 리스트(adjacency list)

그래프 탐색 방법 :
BFS(bread first search)
DFS(depth first search)

해싱(Hashing)
검색을 위한 자료 구조
키(key) 사전(dictionary)

제네릭 프로그래밍

클래스에서 사용하는 변수의 자료형이 여러 개일 수 있음
-> 자료형을 특정하지 않고 사용할 때 지정 할 수 있도록 선언

<T extends 클래스>

자료형의 범위를 제한 할 수 있음

제네릭 메서드 활용

public <자료형 매개 변수> 반환형 메서드 이름(자료형 매개변수.....) {

}

컬렉션 프레임워크

자료구조(Data Structure)를 구현해 놓은 JDK 라이브러리

List

  • ArrayList, Vector, LinkedList, Stack, Queue ...
  • 중복 허용

Set

  • HashSet, TreeSet ...
  • 중복 허용 X, 순서 상관 X

Map

  • HashTable, HashMap, TreeMap ...
  • 객체는 key-value 쌍으로 이루어짐
  • key 중복 X

Collection 요소를 순회하는 Iterator
순서가 있는 List인터페이스의 경우 -> get(i)메서드 활용
Set 인터페이스의 경우 -> Iterator 활용

  • hasNext() : 다음 요소가 있을 경우 true 반환
  • next() : 다음에 있는 요소 반환

TreeSet 클래스 활용

  • comparable 오류 발생
public class Member implements Comparable<Member>{

	...

	@Override
	public int compareTo(Member member) {
		
		//return (this.memberId - member.memberId);   //asc
		  return (this.memberId - member.memberId) *  (-1);   //desc
	}
}

좋은 웹페이지 즐겨찾기