[Java] TreeSet

gyeol·2023년 11월 28일
0

자바

목록 보기
4/12
post-thumbnail

TreeSetSet 인터페이스를 구현한 클래스이다. Set 인터페이스를 구현했기에 순서도 정해지지 않고 중복값도 허용하지 않는다.

TreeSet은 RB-Tree 구조를 가지고 있다. RB-Tree는 이진탐색트리의 일종으로 저장된 값들이 트리 전체에 골고루 저장되도록 한다. 골고루 저장되기에 한쪽으로만 치우치지 않게 만든 균형 트리가 만들어 진다.

이진 탐색 트리

이진 트리 기반의 탐색을 위한 자료구조로 효율적인 탐색 작업이 가능하다.

조건

  • 모든 원소는 서로 다른 유일한 키를 갖는다.
  • 왼쪽 서브 트리에 있는 원소들의 키는 그 루트의 키보다 작다.
  • 오른쪽서브 트리에 있는 원소들의 키는 그 루트의 키보다 작다.
  • 왼쪽 서브 트리와 오른쪽 서브 트리도 이진 탐색 트리이다.
    업로드중..

TreeSet 관련 메서드

TreeSet<> tree = new TreeSet<>();

add()

트리에 값을 추가할 때 사용한다.

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

remove()

해당 값을 삭제할 때 사용된다.

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()을 사용하면 해당 트리의 내용을 전부 삭제한다.

size()

해당 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]
profile
코딩 공부 기록중 '◡'

0개의 댓글