Java 람다 스트림을 이용한 Map 정렬

SlowAnd·2024년 1월 16일
0

Today I Learned Java

목록 보기
8/8

람다 스트림을 이용하여 Map의 Key나 Value를 정렬하여 Map으로 리턴받을 수 있습니다.
MapEntry 메소드를 이용하여 스트림을 생성합니다.


Key 또는 Value를 정렬할 수 있습니다.

Key 기준 정렬


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));

Value 기준 정렬

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));

0개의 댓글