본문 바로가기

자바

[자바] Tree Set 개념 및 활용

TreeSet은 이진 탐색 트리를 이용한 Set이다. 저장할때 정렬하면서 저장을 하기 때문에 따로 정렬을 할 필요가 없다.

public static void main(String[] args) {
        TreeSet set = new TreeSet();
        String from = "b";
        String to = "d";
        set.add("abc");
        set.add("alien"); set.add("bat"); set.add("car"); set.add("Car");   
 	set.add("dance"); set.add("dZZZZ"); set.add("dzzzz"); set.add("elephant");  
        set.add("elevator"); set.add("fan"); set.add("flower"); set.add("disc");  
        
        System.out.println(set);
        System.out.println("rage search : from " + from + " to " + to);
        System.out.println("result1 : " + set.subSet(from,to));
        System.out.println("result2 : " + set.subSet(from, to + "zzz"));
//        [Car, abc, alien, bat, car, dZZZZ, dance, disc, dzzzz, elephant, elevator, fan, flower]
//        rage search : from b to d
//        result1 : [bat, car]
//        result2 : [bat, car, dZZZZ, dance, disc]
    }

result1은 b이상 b 미만의 값들을 가져오기때문에 bat, car 두개가 왔다.

result2는 d로 시작하는 단어까지 포함시키기 위해 zzz를 더해주었다. dzzz다음 단어가 없기 때문에 d로 시작하는 모든 단어들이 포함되어 출력될 것이다.

 

public static void main(String[] args) {
        TreeSet set = new TreeSet();
        int[] score = {80, 95, 50, 35, 45, 65, 10, 100};
        for (int i = 0; i < score.length; i++) {
            set.add(score[i]);
        }
        System.out.println("50보다 작은 값 : " +set.headSet(50));
        System.out.println("50보다 큰 값 : "+ set.tailSet(50));
//        50보다 작은 값 : [10, 35, 45]
//        50보다 큰 값 : [50, 65, 80, 95, 100]
    }