Java Map을 Key, Value 기준 정렬
2024-11-28-java-map-sort.md
1. Key 기준 정렬
keySet을 이용하여 key 기준 정렬을 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapTest {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("c", 3);
map.put("b", 2);
map.put("e", 5);
map.put("a", 1);
map.put("d", 4);
List<String> keySetList = new ArrayList<>(map.keySet());
Collections.sort(keySetList); // 오름차순
for (String key : keySetList) {
System.out.println(key + ":" + map.get(key));
}
Collections.reverse(keySetList); // 내림차순
for (String key : keySetList) {
System.out.println(key + ":" + map.get(key));
}
}
}
2. Value 기준 정렬
Comparator를 사용하여 Value 기준 정렬을 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapTest {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("c", 4);
map.put("b", 2);
map.put("e", 3);
map.put("a", 5);
map.put("d", 1);
List<String> keySetList = new ArrayList<>(map.keySet());
// 오름차순
keySetList.sort(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return map.get(o1).compareTo(map.get(o2));
}
});
for (String key : keySetList) {
System.out.println(key + ":" + map.get(key));
}
// 내림차순
keySetList.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
for (String key : keySetList) {
System.out.println(key + ":" + map.get(key));
}
}
}
[출처 및 참고]
This post is licensed under CC BY 4.0 by the author.