Java를 사용하다보면, Python의 dictionary와 같은 HashMap을 사용해야 할 일이 많다.
Python에서는 간단하게 정렬할 수 있지만.. 역시 우리의 Java는 쉽지가 않다.
다음에도 사용할 것 같으니 까먹지 않게 정리해두겠다!
HashMap 정렬하기
우선은 Key들을 ArrayList로 변환하여 저장해준다.
Key로 정렬을 하려면, 바로 sort나 reverse 메소드를 사용하면 된다.
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))); // 람다 활용생각보다 어렵지 않으니 잘 기억해두자!