[Java] HashMap, Key || Value 기준으로 정렬하기

Sangho Han·2023년 9월 27일
0
post-thumbnail

Java를 사용하다보면, Pythondictionary와 같은 HashMap을 사용해야 할 일이 많다.

Python에서는 간단하게 정렬할 수 있지만.. 역시 우리의 Java는 쉽지가 않다.

다음에도 사용할 것 같으니 까먹지 않게 정리해두겠다!

HashMap 정렬하기

우선은 Key들을 ArrayList로 변환하여 저장해준다.

Key로 정렬을 하려면, 바로 sortreverse 메소드를 사용하면 된다.

value로 정렬하는 데에는 여러 방법이 있지만, 개인적으로 람다함수를 사용하는 것이 깔끔하여 이 방법으로 적도록 하겠다.

compareTo 메소드도 사용해야 하기에, Collections 라이브러리를 import해준다.

Key 기준 오름차순 정렬

import java.util.*;

List<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list); // sort 메소드

Key 기준 내림차순 정렬

import java.util.*;

List<Integer> list = new ArrayList<>(map.keySet());
Collections.reverse(list); // reverse 메소드

Value 기준 오름차순 정렬

import java.util.*;

List<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list, (o1,o2) -> map.get(o1).compareTo(map.get(o2))); // 람다 활용

Value 기준 내림차순 정렬

import java.util.*;

List<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list, (o1,o2) -> map.get(o2).compareTo(map.get(o1))); // 람다 활용

생각보다 어렵지 않으니 잘 기억해두자!

profile
안녕하세요. 비즈니스를 이해하는 백엔드 개발자, 한상호입니다.

0개의 댓글