
DsMap::sorted 메서드는 기본적으로 키를 기준으로 정렬을 합니다. 하지만 정렬 기준을 변경하고 싶다면, Comparator 인터페이스를 구현하여 정렬 기준을 지정할 수 있습니다.
예를 들어, HashMap에 저장된 값이 정렬 기준이 되는 경우 다음과 같이 Comparator 인터페이스를 구현하여 정렬 기준을 지정할 수 있습니다.
#hostingforum.kr
java
import java.util.Comparator;
public class ValueComparator implements Comparator {
private DsMap map;
public ValueComparator(DsMap map) {
this.map = map;
}
@Override
public int compare(String key1, String key2) {
return map.get(key1).compareTo(map.get(key2));
}
}
// 사용 예시
DsMap map = new DsMap<>();
map.put("A", "apple");
map.put("B", "banana");
map.put("C", "cherry");
ValueComparator comparator = new ValueComparator(map);
map.sorted(comparator);
// 결과
// map.get("A") = "apple"
// map.get("B") = "banana"
// map.get("C") = "cherry"
또는, 정렬 기준을 변경하고 싶은 경우에는 DsMap::sorted 메서드의 두 번째 인자로 Comparator 인터페이스를 전달할 수 있습니다.
#hostingforum.kr
java
DsMap map = new DsMap<>();
map.put("A", "apple");
map.put("B", "banana");
map.put("C", "cherry");
map.sorted(new Comparator() {
@Override
public int compare(String key1, String key2) {
return map.get(key1).compareTo(map.get(key2));
}
});
// 결과
// map.get("A") = "apple"
// map.get("B") = "banana"
// map.get("C") = "cherry"
이러한 방법으로 DsMap::sorted 메서드의 정렬 기준을 변경할 수 있습니다.
2025-06-30 08:09