- 데이터의 순서는 자연적인 순서(오름차순)대로 유지가 된다.
- 이진 탐색 트리(Binary Search Tree) 구조로 되어있다.
- 이진 탐색 트리 중에서도 레드-블랙 트리(Red-Black Tree)로 구현되어 있다.
생성 및 선언
import java.util.Collections;
import java.util.TreeSet;
public class TreeSetDemo{
public static void main(String[] args) {
TreeSet<Interger> set1 = new TreeSet<Integer>(); // TreeSet 생성
TreeSet<Interger> set2 = new TreeSet<>(); // new에서 타입 파라미터 생략가능
TreeSet<Interger> set3 = new TreeSet<Integer>(set1); // set1의 모든 값을 가진 TreeSet
TreeSet<Interger> set4 = new TreeSet<Integer>(Arrays.asList(1, 2, 3)); // 초기값 지정
}
}
- Collections.reverseOrder()를 사용하면 내림차 순 정렬로 바꿀 수 있다.
- Collections를 사용하기 위해서는 import를 해야 한다.
값 추가
import java.util.TreeSet;
public class TreeSetDemo{
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Interger> ts = new TreeSet<>();
// 값 추가
ts.add(5);
ts.add(4);
ts.add(3);
ts.add(2);
ts.add(1);
System.out.println(ts); // 결과 출력
}
}
- 입력되는 값이 TreeSet 내부에 존재하지 않는다면 그 값을 추가한 뒤 true를 반환하고 존재한다면 false를 반환한다.
값 삭제
import java.util.TreeSet;
public class TreeSetDemo{
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Interger> ts = new TreeSet<>();
// 값 추가
ts.add(5);
ts.add(4);
ts.add(3);
ts.add(2);
ts.add(1);
System.out.println(ts); // 결과 출력
ts.remove(4); // 4 삭제
System.out.println(ts); // 결과 출력
ts.pollFirst(); // 첫 데이터 삭제
System.out.println(ts); // 결과 출력
ts.pollLast(); // 마지막 데이터 삭제
System.out.println(ts); // 결과 출력
ts.clear(); // 전체 삭제
System.out.println(ts); // 결과 출력
}
}
크기 구하기
import java.util.TreeSet;
public class TreeSetDemo{
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Interger> ts = new TreeSet<>();
// 값 추가
ts.add(5);
ts.add(4);
ts.add(3);
ts.add(2);
ts.add(1);
System.out.println(ts); // 결과 출력
System.out.println("TreeSet의 크기는 " + ts.size());
}
}
값 출력
import java.util.TreeSet;
import java.util.Iterator;
public class TreeSetDemo{
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Interger> ts = new TreeSet<>();
// 값 추가
ts.add(5);
ts.add(4);
ts.add(3);
ts.add(2);
ts.add(1);
/* 향상된 for문을 사용하여 출력 */
for(Integer str : ts)
System.out.print(str + " ");
System.out.println();
// Iterator를 사용하여 출력
Iterator iter = ts.iterator();
while(iter.hasNext())
System.out.println(iter.next() + " ");
}
}
'자료구조' 카테고리의 다른 글
[자료구조] HashMap (0) | 2023.11.09 |
---|---|
[자료구조] HashTable (0) | 2023.11.09 |
[자료구조] Hash Set (0) | 2023.11.07 |
[자료구조] Vector (0) | 2023.11.06 |
[자료구조] Stack (0) | 2023.11.06 |