Collectors.toMap()

MMM·2023년 8월 22일

Collectors.toMap() feat. Map.Entry를 LinkedHashMap으로 변경하기

코드를 짜던 중 stream을 이용해 Map.Entry를 LinkedHashMap으로 변경해야 할 일이 있었다. 그래서 찾아본 내용 정리.

공식문서에서 가져온 내용이다.

toMap에는 크게 세 가지 종류가 있다.

  1. toMap(keyMapper, valueMapper)

  2. toMap(keyMapper, valueMapper, mergeFunction)

  3. toMap(keyMapper, valueMapper, mergeFunction, mapFactory)

그 중 이번에 필요한 건 3번이다.

mergeFunction은 이름에서도 볼 수 있듯이 동일한 키를 추가로 삽입할 때 어떻게 처리할지 넣어주는 것.

    testMap.entrySet().stream()
            .collect(Collectors.toMap(Map.Entry::getKey, Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new));

최종적으로 코드는 이런 형태로 넣었고, 잘 작동하는 것 같아 보인다.

profile
과거의 내가 현재의 나보다 똑똑할 때가 있다.

0개의 댓글