JAVA
[Java] HashMap Value 기준으로 정렬하기
퉁그리
2022. 1. 13. 02:23
map에서 treemap은 key값으로만 정렬해주기 때문에 value를 정렬하려면 list를 이용해야한다.
map의 entry set을 이용해 list화 한다.
Map<String, Integer> map = new HashMap<>();
map.put("a", 3);
map.put("b", 2);
map.put("c", 1);
List<Map.Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
다음 entry의 sort함수와 comparator, tocompare를 사용해 간단하게 비교가 가능하다.
entries.sort((v1, v2) -> v1.getValue().compareTo(v2.getValue()));
Map<Integer, Double> result = new HashMap<>();
for (int i = 0; i < COUNT5_CHAMP_LIMIT; i++) {
result.put(entries.get(i).getKey(), entries.get(i).getValue());
}
나의 경우 entries를 comparTo를 통해 최저값 5개만 골라 다시 map으로 변환해줬다.