TreeSet<E> — 레드-블랙 트리 기반의 정렬된 집합

TreeSet — 레드-블랙 트리 기반의 정렬된 집합

Red-Black 트리 기반의 NavigableSet 구현이에요. 요소는 자연 순서 또는 집합 생성 시 제공된 Comparator에 따라 정렬돼요.

출처: Java API Reference

본문

public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, Serializable

이 구현은 기본 연산(add, remove, contains)에 대해 보장된 log(n) 시간 비용을 제공해요.

정렬 집합이 Set 인터페이스를 올바르게 구현하려면 유지되는 순서는 equals와 일치해야 해요.

이 구현은 동기화되지 않아요. 여러 스레드가 동시에 집합에 접근하고 그중 하나가 구조적으로 수정한다면 외부에서 동기화해야 해요. 일반적으로 Collections.synchronizedSortedSet으로 감싸는 것이 생성 시점에 가장 좋아요.

주요 생성자

  • TreeSet() — 자연 순서로 정렬된 새 빈 집합을 생성해요.
  • TreeSet(Comparator<? super E> comparator) — 지정된 comparator로 정렬된 새 빈 집합을 생성해요.
  • TreeSet(Collection<? extends E> c) — 컬렉션 c의 요소를 자연 순서로 정렬한 새 집합을 생성해요.
  • TreeSet(SortedSet<E> s) — 기본 정렬 집합과 같은 요소와 순서를 가진 새 집합을 생성해요.

주요 메서드

  • add(E e) — 지정된 요소가 아직 없으면 추가해요.
  • contains(Object o) — 지정된 요소가 있으면 true를 반환해요.
  • remove(Object o) — 지정된 요소가 있으면 제거해요.
  • first() / last() — 현재 첫(가장 낮은)·마지막(가장 높은) 요소를 반환해요.
  • pollFirst() / pollLast() — 첫·마지막 요소를 검색하고 제거해요.
  • lower(E) / floor(E) / ceiling(E) / higher(E) — 요소를 기준으로 이웃 요소를 반환해요.
  • subSet(...) / headSet(...) / tailSet(...) — 부분 뷰를 반환해요.

이 인터페이스는 Java Collections Framework의 한 구성원이에요.

더 알아보기 (Learn more)