반응형
Set에서 HashSet과 다르게 사용되는 클래스 TreeSet은 어떤 특징을 가지고 있을까요?
TreeSet은 HashSet과 다르게 객체가 들어오게 되면 그 객체들을 자동적으로 오름차순으로 정렬을 합니다.
따라서 List처럼 따로 인덱스를 지정하지 않음에도 특정한 부분의 값들을 따로 가져올 수도 있고
가장 좌측의 값, 가장 큰 값, 어떠한 객체의 오른쪽에 있는 값등을 가져올 수 있습니다.
public class CordJgTreeSet {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(10);
treeSet.add(5);
treeSet.add(17);
treeSet.add(-1);
System.out.println(treeSet);
System.out.println(treeSet.first());
System.out.println(treeSet.last());
System.out.println(treeSet.higher(5));
System.out.println(treeSet.subSet(0,10));
System.out.println(treeSet.subSet(0,18));
System.out.println(treeSet.subSet(-1,10));
}
}
[-1, 1, 5, 10, 17]
-1
17
10
[1, 5]
[1, 5, 10, 17]
[-1, 1, 5]
위의 코드를 보면 treeSet에 무분별하게 값을 추가했음에도 treeSet을 출력해 보면
[-1,1,5,10,17]이라는 정렬되어 있는 값을 얻을 수 있습니다.
그리고 treeSet의 메서들 중 subSet이라는 메서드가 있는데
subSet(a, b)가 의미하는 바는 treeSet에 존재하는 객체들 중 a <=x <b에 있는 객체들을 나타내라는 뜻입니다.
subSet 메서드는 treeSet의 객체들을 따로 빼는 역할이 아닌 그저 그 구간 사이에 있는 객체들만 보는 역할을 합니다
subSet(0,10)을 하니 [1,5]만 나온 것을 볼 수 있습니다!
숫자뿐만 아니라 String타입으로 string 객체들이 들어간다 해도 사전 편찬 순으로 오름차순 되어 정렬됩니다.
한번 스스로 String 타입으로 만들어 확인해 보세요
반응형
'Java > Java' 카테고리의 다른 글
Java 문자열 나누는 방법, 문자열 자르기 ( substring(), split()) (0) | 2023.01.15 |
---|---|
Java 컬렉션 프레임워크 Map(HashMap) #로그인 코드 만들기 (0) | 2023.01.14 |
Java 컬렉션 프레임워크 _ Set(HashSet) (0) | 2023.01.14 |
Java 컬렉션 프레임워크 Iterator (0) | 2023.01.14 |
Java 컬렉션 프레임워크_List_ArrayList (Collection framework) (0) | 2023.01.14 |