728x90
프로그래머스 - 베스트앨범 문제를 풀이하며 Map을 정렬하는 방법이 있을지 궁금해졌다.
1. Key 값을 기준으로 정렬하기
- map의 keySet()을 이용하여 정렬
- 오름차순 : Collections.sort()
- 내림차순 : Collections.reverse()
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("A", 10);
map.put("D", 30);
map.put("C", 20);
map.put("B", 40);
List<String> keySet = new ArrayList<>(map.keySet()); // map의 keySet()을 list로
Collections.sort(keySet); // 오름차순 정렬
Collections.reverse(keySet); // 내림차순 정렬
}
}
2. Value 값을 기준으로 정렬하기
- comparator 사용
- 람다 표현식 사용
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("A", 10);
map.put("D", 30);
map.put("C", 20);
map.put("B", 40);
List<String> keySet = new ArrayList<>(map.keySet()); // map의 keySet()을 list로
// 오름차순 정렬
keySet.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return map.get(o1).compareTo(map.get(o2));
}
});
// 내림차순 정렬
keySet.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
}
}
'JAVA > Java Study' 카테고리의 다른 글
[Java] ArrayList 정렬하기 (0) | 2024.08.18 |
---|---|
[Java] Map 순회 방법 (0) | 2024.08.18 |
[Java] 스트림 API (Stream API) (0) | 2024.06.24 |
[Java] 람다 표현식(Lambda Expression) (0) | 2024.06.24 |
[Java] List에 특정 값이 포함되어 있는지 확인하는 방법 (0) | 2024.05.20 |