
TreeSet 클래스는 NavigableSet 인터페이스를 구현하였으며 이진 검색트리 (Binary Search Tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션이다. 이진 검색 트리는 정렬, 검색, 범위 검색에 높은 성능을 보이는 자료구조로 TreeSet 클래스는 이진 검색 트리의 성능을 높인 레드-블랙 트리(Red-Black Tree)로 구현되어있다.
이진 트리(binary Tree)는 링크드리스트처럼 각 노드에 최대 2개의 노드를 연결할 수 있으며 루트(root)라고 불리는 하나의 노드에서부터 시작해 계속 확장해나가는게 가능하다.
반환타입이 boolean인 메서드들은 작업에 성공하거나 사실이면 true, 아니면 false를 반환한다.
| 메서드 | 기능 |
|---|---|
| boolean add(Object o) boolean addAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 TreeSet에 추가. |
| 메서드 | 기능 |
|---|---|
| boolean contains(Object o) boolean containsAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들이 포함되어 있는지 확인. |
| 메서드 | 기능 |
|---|---|
| boolean remove(Object o) boolean removeAll(Collection c) | 지정된 객체(o) 또는 Collection(c)의 객체들을 삭제. |
| boolean retainAll(Collection c) | 지정된 Collection에 포함된 객체만을 남기고, 다른 객체들은 TreeSet에서 삭제 집합의 교집합 개념과 유사함. |
| void clear() | TreeSet의 모든 객체를 삭제 |
| 메서드 | 기능 |
|---|---|
| Object first() | 정렬된 순서에서 첫 번째 객체를 반환 |
| Object last() | 정렬된 순서에서 마지막 객체를 반환 |
| SortedSet headSet(Object toElement) | 지정된 객체보다 작은 값의 객체들을 반환 |
| SortedSet tailSet(Object fromElement) | 지정된 객체보다 큰 값의 객체들을 반환 |
| SortedSet subSet(Object fromElement, Object toElement) | 범위검색(fromElement와 toElement사이)의 결과를 반환 |
| 메서드 | 기능 |
|---|---|
| Object lower(Object e) | 지정된 객체보다 작은 값을 가진 객체중 제일 가까운 값의 객체를 반환 만약 그런 요소가 없으면 null을 반환 |
| Object higher(Object e) | 지정된 객체보다 큰 값을 가진 객체중 제일 가까운 값의 객체를 반환 만약 그런 요소가 없으면 null을 반환 |
| Object floor(Object e) | 지정된 요소보다 작거나 같은 값을 가진 객체중 제일 가까운 값의 객체를 반환 만약 그런 요소가 없으면 null을 반환 |
| Object ceiling(Object e) | 지정된 요소보다 크거나 같은 값을 가진 객체중 제일 가까운 값의 객체를 반환 만약 그런 요소가 없으면 null을 반환 |
| 메서드 | 기능 |
|---|---|
| NavigableSet subSet(Object fromElement, boolean fromInclusive, Object toElement, boolean toInclusive) | 지정된 범위의 요소를 포함하는 부분 집합을 반환 fromInclusive와 toInclusive를 사용하여 경계 요소의 포함 여부를 지정 가능 |
| NavigableSet headSet(Object toElement, boolean inclusive) | 지정된 요소보다 작은 요소를 포함하는 부분 집합을 반환 inclusive를 사용하여 경계 요소의 포함 여부를 지정 가능 |
| NavigableSet tailSet(Object fromElement, boolean inclusive) | 지정된 요소보다 큰 요소를 포함하는 부분 집합을 반환 inclusive를 사용하여 경계 요소의 포함 여부를 지정 가능 |
| 메서드 | 기능 |
|---|---|
| Object pollFirst() | 첫 번째 (가장 낮은) 요소를 제거하고 반환 만약 집합이 비어 있으면 null을 반환 |
| Object pollLast() | 마지막 (가장 높은) 요소를 제거하고 반환 만약 집합이 비어 있으면 null을 반환 |
| 메서드 | 기능 |
|---|---|
| boolean equals(Object o) | 동일한 TreeSet인지 확인 |
| int hashCode() | TreeSet의 해시 코드를 반환 |
| Object clone() | TreeSet의 얕은 복사본을 생성해서 반환 |
| 메서드 | 기능 |
|---|---|
| Iterator iterator() | 해당 TreeSet의 iterator를 얻어서 반환 |
| Iterator descendingIterator() | 요소들을 역순으로 반복하는 반복자를 반환 |
| Spliterator spliterator() | TreeSet에 저장된 요소들을 분할할 수 있는 Spliterator 객체를 반환 |
| 메서드 | 기능 |
|---|---|
| boolean isEmpty() | TreeSet이 비어있는지 확인 |
| int size() | TreeSet에 저장된 객체의 개수를 반환 |
| Comparator comparator() | TreeSet에 사용되는 Comparator를 반환. 자연 순서에 따라 정렬된 경우 null을 반환 |
| NavigableSet descendingSet() | 요소들을 역순으로 정렬한 NavigableSet을 반환 |
| 메서드 | 기능 |
|---|---|
| Object[] toArray() | TreeSet에 저장된 객체를 객체배열(Object[])로 반환 |
| Object[] toArray(Object[] a) | 지정된 배열에 TreeSet의 객체를 저장해서 반환 |
자바의 정석 3판 (저자 : 남궁성)
Java Collections Framework Video Tutorial
오라클 Java 문서