TreeSet
은 Set
인터페이스를 구현한 클래스이다. Set
인터페이스를 구현했기에 순서도 정해지지 않고 중복값도 허용하지 않는다.
TreeSet
은 RB-Tree 구조를 가지고 있다. RB-Tree는 이진탐색트리의 일종으로 저장된 값들이 트리 전체에 골고루 저장되도록 한다. 골고루 저장되기에 한쪽으로만 치우치지 않게 만든 균형 트리가 만들어 진다.
이진 트리 기반의 탐색을 위한 자료구조로 효율적인 탐색 작업이 가능하다.
TreeSet<> tree = new TreeSet<>();
트리에 값을 추가할 때 사용한다.
TreeSet<Integer> tree = new TreeSet<>();
tree.add(1);
tree.add(2);
tree.add(3);
for(int a : tree) System.out.print(a + " ");
//출력 : 1 2 3
해당 값을 삭제할 때 사용된다.
TreeSet<Integer> tree = new TreeSet<>();
tree.add(1);
tree.add(2);
tree.add(3);
tree.remove(1);
System.out.println(tree);
//출력 : [2, 3]
tree.clear()
을 사용하면 해당 트리의 내용을 전부 삭제한다.
해당 TreeSet
의 길이를 반환한다.
TreeSet<Integer> tree = new TreeSet<>();
tree.add(1);
tree.add(2);
tree.add(3);
System.out.print(tree.size());
//출력 : 3
TreeSet
을 역순으로 정렬해주려면 Collections
클래스의 reverseOrder()
메서드를 사용하면 된다.
TreeSet<Integer> tree = new TreeSet<>(Collections.reverseOrder());
tree.add(1);
tree.add(2);
tree.add(3);
System.out.println(tree);
//출력 : [3, 2, 1]