알고리즘 문제를 풀다보니 map을 정렬해야 할 때가 있어 정리를 하고자 한다.
import java.util.*;
public class Main{
public static void main(String[] args){
HasaMap<String, Integer> map = new HashMap<>();
map.put("A" , 10);
map.put("B" , 30);
map.put("C" , 40);
map.put("D" , 20);
map.put("E" , 50);
// 1. value를 기준으로 정렬
List<String> list = new ArrayList<>(map.keySet());
// 1) 내림차순 정렬
list.sort((o1, o2) -> map.get(o2) - map.get(o1));
// 2) 오름차순 정렬
list.sort((o1, o2) -> map.get(o1) - map.get(o2));
------------------------------------------------------------------
// 2. key를 기준으로 정렬
// 1) 내림차순 정렬
list.sort(Collections.reverseOrder());
// 2) 오름차순 정렬
Collections.sort(list);
}
}
'Algorithm' 카테고리의 다른 글
[Algorithm] 백준 1912번 연속합 - JAVA (0) | 2023.02.15 |
---|---|
[Algorithm] 소수 구하기(에라토스테네스의 체) - JAVA (0) | 2023.02.09 |
[프로그래머스] 다음 큰 숫자 - JAVA (0) | 2023.01.31 |
[Algorithm] 약수의 개수 구하기 - JAVA (0) | 2023.01.24 |
[Algorithm] 합이 같은 부분집합 (DFS) - JAVA (0) | 2023.01.23 |