🔷 TreeSet
TreeSet은 정렬이 가능한 Set으로, 중앙 노드를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽에 저장됨. 이를 통해 자동으로 정렬된 상태로 데이터를 유지.
🔷 실습(1)
TreeSet을 이용하여 Lotto 번호 6개를 랜덤으로 넣기
package day08;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.TreeSet;
public class TreeSet01 {
public static void main(String[] args) {
// 정렬이 가능한 Set
// 중앙 노드를 기준으로 작은 값이 들어오면 left, 큰값이 들어오면 right
// TreeSet을 이용하여 Lotto 번호 6개를 랜덤으로 넣기
TreeSet<Integer> set = new TreeSet<>();
Set<Integer> set2 = new HashSet<>();
for(int i=0; set.size()<6; i++) {
int num = new Random().nextInt(45)+1;
set.add(num);
set2.add(num);
}
System.out.println("--TreeSet--");
System.out.println(set);
System.out.println("--HashSet--");
System.out.println(set2);
// first() / last() : Treeset의 가장 앞에있는 값 / 가장 뒤에 있는 값 추출
System.out.println(set.first());
// System.out.println(set2.first()); // error. HashSet은 없음
System.out.println(set.last());
}
}
- Random 클래스를 사용하여 1부터 45 사이의 랜덤한 숫자를 생성하고, TreeSet에 추가.
- 중복된 번호는 자동으로 제거
- first()와 last() 메서드를 사용하여 가장 작은 값과 큰 값을 출력.
결과
--TreeSet--
[3, 5, 20, 23, 35, 45]
--HashSet--
[3, 35, 20, 5, 23, 45]
3
45
🔷 실습(2)
TreeSet을 사용하여 점수 집합을 생성하고, 특정 기준값에 따라 점수를 분류
package day08;
import java.util.TreeSet;
public class TreeSet02 {
public static void main(String[] args) {
int[] score = {80,79,85,46,35,84,75,96,82};
TreeSet<Integer> set = new TreeSet<Integer>();
for(int s : score) {
set.add(s);
}
System.out.println(set);
// headSet(value) : value보다 작은값
// tailSet(value) : value보다 큰값
System.out.println("-----");
System.out.println(set.headSet(70));
System.out.println(set.tailSet(70));
}
}
결과
[35, 46, 75, 79, 80, 82, 84, 85, 96]
-----
[35, 46]
[75, 79, 80, 82, 84, 85, 96]
데이터는 정렬될 때 그 의미가 드러난다.
'백엔드 > Java' 카테고리의 다른 글
| Java로 상품 관리 시스템 구현(2) (0) | 2024.10.25 |
|---|---|
| Java로 단어장 구현 (0) | 2024.10.23 |
| Java Map (4) | 2024.10.21 |
| Java set (4) | 2024.10.20 |
| Java List (1) | 2024.10.20 |