본문 바로가기

04번. IT 힌트얻기/▶ 자바

[Java] Sorted 계열 클래스 (TreeSet, TreeMap, Comparator)


◆ HashSet 이나 HashMap을 사용하던 도중 정렬기능이 필요할 때 정렬 기능을 지원해주는 TreeSet이나 TreeMap으로 변환해서 사용이 가능하다.
 

1. HashSet을 TreeSet으로 변환하기

 

 
2. HashMap을 TreeMap으로 변환하기

 

 

 
◆ TreeMap과 TreeSet의 Comparator 구현을 통한 정렬하기

TreeSet에 데이터를 집어 넣으면 기본적으로 오름차순(Ascending) 정렬이 되지만 그것도 문자열이나 기본 데이터 타입과 같은 단순한 것에만 해당된다. 만약 사용자가 직접 만든 클래스의 형이라면 어떻게 정렬을 할까? 이것은 사용자가 직접 비교법을 넣어 주어야 한다. TreeSet의 경우에는 Comparator 인터페이스를 이용해서 구현한다.

Comparator 인터페이스는
TreeSet에 사용자가 직접 비교법을 넣어줄 때 사용하는 인터페이스이다.

Score.java

 
 MyComparator.java - Comparator 인터페이스를 구현한 것
 


TreeSetCompareMain.java
-> TreeSet을 MyComparator의 정렬기준에 따라 정렬 


 


TreeMapCompareMain.java
 -> TreeMap을 MyComparator 정렬 조건으로 정렬