본문 바로가기
카테고리 없음

자바 TreeSet 사용법 & 예제 총정리

by kangs' tong 2023. 8. 29.

TreeSet

개요

TreeSet은 자바 컬렉션 프레임워크에서 제공되는 클래스 중 하나로, 순서가 있는 정렬된 Set이다. 내부적으로 이진 검색 트리(binary search tree)로 구현되어 있으며, 원소들은 정렬된 상태로 유지된다. 새로운 원소를 추가하거나 삭제할 때마다 정렬 상태를 유지하기 때문에, 원소들의 순서를 신속하게 찾을 수 있다.

TreeSet의 특징

  1. 값에 대한 중복을 허용하지 않는다.
  2. Null 값을 저장할 수 없다.
  3. 원소들은 값의 순서에 의해 정렬된다.
  4. 이진 검색 트리 자료구조를 기반으로 구현되어 있기 때문에, 검색, 삽입, 삭제, 정렬 등의 연산을 빠르게 수행할 수 있다.

TreeSet의 생성

Set<String> treeSet1 = new TreeSet<>();

Set<String> treeSet2 = new TreeSet<>(Comparator.reverseOrder());

위의 코드는 String 타입의 TreeSet을 생성하는 예시이다. Comparator.reverseOrder()를 통해 역순으로 정렬된 TreeSet을 생성할 수 있다.

TreeSet에 원소 추가하기

treeSet.add("Apple");
treeSet.add("Banana");
treeSet.add("Orange");

위의 코드는 TreeSet에 원소를 추가하는 예시이다. 자동으로 정렬되기 때문에, TreeSet 내의 원소들은 다음과 같이 정렬된다: Apple, Banana, Orange.

TreeSet에서 원소 제거하기

treeSet.remove("Banana");

위의 코드는 TreeSet에서 "Banana"라는 원소를 제거하는 예시이다.

TreeSet의 원소 확인하기

System.out.println(treeSet.contains("Apple")); // true

System.out.println(treeSet.isEmpty()); // false

System.out.println(treeSet.size()); // 2

위의 코드는 "Apple"이 TreeSet에 포함되어 있는지, TreeSet이 비어있는지, 그리고 TreeSet의 크기를 출력하는 예시이다.

TreeSet의 원소 순회하기

for (String fruit : treeSet) {
    System.out.println(fruit);
}

위의 코드는 TreeSet의 모든 원소를 순회하면서 출력하는 예시이다. 결과는 정렬된 순서대로 출력된다.

전체 내용 정리

TreeSet은 값을 정렬된 상태로 유지하는 Set이다. 트리 기반의 구조에 의해 원소들이 정렬되기 때문에, 검색, 삽입, 삭제, 정렬 등의 연산을 빠르게 수행할 수 있다. Null 값이나 중복된 값은 허용되지 않는다. TreeSet은 기본적으로 원소들을 오름차순으로 정렬하지만, Comparator를 이용하여 다른 정렬 기준을 사용할 수도 있다. 삽입, 삭제, 검색 등의 연산은 O(log n)의 시간 복잡도를 가지므로, 대용량 데이터 처리에도 효율적으로 사용할 수 있다.

댓글