-
[Java] HashMap Value 기준으로 정렬하기JAVA 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으로 변환해줬다.
'JAVA' 카테고리의 다른 글
[JAVA] Enum 활용 (0) 2022.02.25 [JAVA] ArrayList 정렬하기 (0) 2022.01.16 [Java] Java 함수적 인터페이스 Consumer, Supplier (0) 2021.12.17 [Java]Optional 활용법 (0) 2021.12.17 [Java] Optional (0) 2021.12.17