자바/알고리즘

TreeSet 클래스

2023. 9. 20. 00:31
글 목차


728x90

TreeSet 미친 클래스인데 왜 이때까지 안씀?

 

이새끼는 HashSet과 마찬가지로 중복된 오브젝트를 제거해 줄 수 있다.

 

근데 미친게 정렬을 자동으로 해준다.(대신 IO에 시간이 많이 든다)

 

게다가 tailSet() 이나 headSet()이라는 메서드가 TreeSet 인스턴스의 부분집합을 리턴해줄 수 도 있다. 예를 들면 이렇다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        TreeSet<Integer> setter = new TreeSet<Integer>();
        setter.add(1);
        setter.add(3);
        setter.add(7);
        setter.add(2);
        setter.add(4);
        setter.add(9);
        setter.add(5);
        setter.add(8);
        System.out.println(setter.tailSet(5));
    }
}

setter는 [1,2,3,4,5,6,7,8,9]인데(정렬이 되어있다)

setter.tailSet()은 [5, 7, 8, 9]다. 정말 돌아이급이지 않는가?

setter.headSet()은 [1,2,3,4]다. 미친거 같다진짜

심지어 lower, higher, last, first같은 미친 메서드도 많다.. 

728x90
TreeSet 클래스