람다 스트림을 이용하여 Map의 Key나 Value를 정렬하여 Map으로 리턴받을 수 있습니다.
Map
의 Entry
메소드를 이용하여 스트림을 생성합니다.
Key
또는 Value
를 정렬할 수 있습니다.
comparingByKey( Comparator 타입)
으로 Key를 정렬할 수 있습니다.
Map<String, Integer> unsortedMap = ...; // 정렬되지 않은 Map
Map<String, Integer> sortedMap = unsortedMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));
Map.Entry.comparingByValue(Comparator 타입)
를 사용하여 값에 따라 정렬합니다.
Map<String, Integer> unsortedMap = ...; // 정렬되지 않은 Map
Map<String, Integer> sortedMap = unsortedMap.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue, LinkedHashMap::new));