(1) 설명

(2) List - List컬렉션, ArrayList, Vector, LinkedList 사용법

(3) Set - Set 컬렉션 사용법

(4) Map - Map 컬렉션, HashMap, Hashtable 사용법

(5) 검색기능을 강화시킨 컬렉션 - TreeSet, TreeMap 사용법

(6) 기본 컬렉션 - Stack, Queue 사용법

(7) 동기화된 컬렉션, 병렬 처리를 위한 컬렉션

(8) 스레드 풀

 

 

 

1.

컬렉션 프레임워크는 검색 기능을 강화시킨 TreeSet과 TreeMap을 제공하고 있습니다.

이 컬렉션들은 이진 트리(binary tree)를 이용해서 계층적 구조(Tree 구조)를 가지면서 객체를 저장합니다.

   TreeSet - TreeSet이 가지고 있는 검색 관련 메소드들입니다.
- TreeSet이 가지고 있는 정렬과 관련된 메소드들입니다.
- TreeSet이 가지고 있는 범위 검색과 관련된 메소드들입니다.
   TreeMap - TreeSet과 차이점이 저장된 Map.Entry를 저장한다는 점입니다.

 

 

 

2. TreeSet

TreeSet은 이진 트리를 기반으로한 Set 컬렉션입니다.

하나의 노드

(1).노드 값인 value

(2).왼쪽과 오른쪽 자식 노드를 참조하기 위한 두 개의 변수로 구성됩니다.

- 사용법 -

 

Set 인터페이스 타입 변수에 대입해도 되지만

TreeSet 클래스 타입으로 대입한 이유는 

객체를 찾거나 범위 검색과 관련된 메소드를 사용하기 위해서입니다.

 

 

 

 

- TreeSet이 가지고 있는 검색 관련 메소드들입니다.

- 사용 예 -

점수를 무작위로 저장하고 특정 점수를 찾는 방법을 보여줍니다.

 

 

 

 

- TreeSet이 가지고 있는 정렬과 관련된 메소드들입니다.

descendingSet() 메소드는 내림차순으로 정렬된 NavigableSet 객체를 리턴하는데 NavigableSet은 TreeSet과 마찬가지로 first(), last(), lower() 등의 메소드를 제공하고, 정렬 순서를 바꾸는 descendingSet()을 제공합니다.

 

오름차순으로 정렬하고 싶다면 descendingSet() 메소드를 두 번 호출하면 됩니다.

 

 

 

- TreeSet이 가지고 있는 범위 검색과 관련된 메소드들입니다.

- 사용 예 -

영어 단어를 TreeSet에 저장한 후 알파벳 c ~ f 사이의 단어를 검색해보는 예제입니다.

 

 

 

 

 

 

 

 

3. TreeMap

TreeMap은 이진 트리를 기반으로 한 Map 컬렉션입니다.
TreeSet과 차이점은 키와 값이 저장된 Map.Entry를 저장한다는 점입니다.


TreeMap에 객체를 저장하면 자동으로 정렬되는데, 

기본적으로 부모 키값과 비교해서

키 값이 낮은 것은 왼쪽 노드에,

키 값이 높은 것은 오른쪽 노드에

Map.Entry에 저장합니다.

 

 

TreeMap을 생성하기 위해서는 키로 저장할 객체 타입과 값으로 저장할 객체 타입을 타입 파라미터로 주고 기본 생성자를 호출하면 됩니다. 

 

Map 인터페이스 타입 변수에 대입해도 되지만,

TreeMap 클래스 타입으로 대입한 이유

특정 객체를 찾거범위 검색과 관련된 메소드를 사용하기 위해서입니다.

 

 

- TreeMap이 가지고 있는 검색 관련 메소드입니다.

 

- 사용 예 -

점수를 키로, 이름을 값으로 해서 무작위로 저장하고 특정 Map.Entry를 찾는 방법을 보여줍니다.

 

 

 

- TreeMap이 가지고 있는 범위 검색과 관련된 메소드들입니다