백엔드/Java

Java TreeSet

짱뚱짱 2024. 10. 22. 09:02

🔷 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