안녕하세요
이번 포스팅에서는 TreeSet에 대해서 알아보겠습니다
목차
TreeSet이란?
TreeSet 선언하기
TreeSet 값 추가하기
TreeSet 값 삭제하기
TreeSet 크기 구하기
TreeSet 값 출력하기
TreeSet이란?
자바의 SortedSet 인터페이스 중 하나입니다
HashSet과 비슷한 구조를 가져서 중복 데이터를 저장하지 않고 저장 순서를 유지하지 않는다는 성질을 가집니다
HashSet과 다른 점은 TreeSet은 이진 탐색 트리(BinarySearchTree) 구조로 되어있습니다
이진 탐색 트리에서 검색능력을 더 향상시킨 레드-블랙-트리로 구현되어 있습니다
TreeSet 선언하기
import java.util.Collections;
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// Integer 타입으로 오름차순 정렬
TreeSet<Integer> ts = new TreeSet<>();
// Integer 타입으로 내림차순 정렬
TreeSet<Integer> ts2 = new TreeSet<>(Collections.reverseOrder());
// String 타입으로 오름차순 정렬
TreeSet<String> ts3 = new TreeSet<>();
// String 타입으로 내림차순 정렬
TreeSet<String> ts4 = new TreeSet<>(Collections.reverseOrder());
}
}
TreeSet의 생성방법입니다
생성을 위해서는 java.util.TreeSet 클래스를 import합니다
TreeSet<타입> 변수명 = new TreeSet<>(); 선언하면 자동으로 오름차순 정렬이 되는 TreeSet을 선언합니다
Collections.reverseOrder() 메서드를 사용하면 내림차순 정렬로 바꿀 수 있습니다
Collections를 사용하기 위해서는 java.util.Collections를 import해야합니다
TreeSet 값 추가하기
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Integer> ts = new TreeSet<>();
// 값 추가
ts.add(5);
ts.add(4);
ts.add(3);
ts.add(2);
ts.add(1);
System.out.println(ts); // 결과 출력
}
}
TreeSet의 값을 추가하는 방법입니다
add(Object) 메서드를 사용하여 값을 추가할 수 있습니다
TreeSet은 기본적으로 정렬을 해주기때문에 결과를 출력하면 정렬된 값으로 출력이 됩니다
결과
TreeSet 값 삭제하기
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Integer> 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); // 결과 출력
}
}
TreeSet에서 값을 삭제하는 방법입니다
remove(Object)를 사용하면 Object에 대한 값만 삭제합니다
Object가 없는 경우 false를 리턴해줍니다
pollFirst(), pollLast() 메서드를 사용하면 맨 처음 데이터와 맨 마지막 데이터를 삭제해줍니다
값을 모두 삭제하고 싶은 경우 clear() 메서드를 사용합니다
결과
TreeSet 크기 구하기
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Integer> 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());
}
}
TreeSet의 크기를 구하는 방법은 size() 메서드를 사용하여 구할 수 있습니다
TreeSet에 있는 값의 갯수를 출력해줍니다
결과
TreeSet 값 출력하기
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// TreeSet 선언
TreeSet<Integer> 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.print(iter.next() + " ");
}
}
TreeSet의 값을 출력하는 방법입니다
향상된 for문을 사용하여 출력하거나 Iterator클래스를 사용하여 출력하는 방법입니다
위의 코드를 참고바랍니다
결과
여기까지 TreeSet의 개념과 사용방법에 대해서 알아봤습니다
추가로 TreeSet의 메서드 및 개념에 대해서 알아보고 싶은 분들은 아래의 사이트를 참고바랍니다!
저도 이 포스팅을 작성하는데 참고한 사이트입니다
https://www.geeksforgeeks.org/treeset-in-java-with-examples/
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] HashTable의 개념 및 사용법 정리 (0) | 2021.05.25 |
---|---|
[JAVA] HashMap의 개념 및 사용법 정리 (0) | 2021.05.25 |
[JAVA] LinkedHashSet의 개념과 사용법 (0) | 2021.05.25 |
[JAVA] Deque/ArrayDeque(데크) 개념 및 사용법 정리 (0) | 2021.05.25 |
[JAVA] Priority Queue(우선순위 큐) 개념 및 사용법 정리 (0) | 2021.05.23 |