在java中,定义一个Map<String, Integer>,由键值进行排序
时间: 2024-02-11 09:09:48 浏览: 117
要对 Map<String, Integer> 按照键值进行排序,可以按照以下步骤进行:
1. 将 Map<String, Integer> 转化为 List<Map.Entry<String, Integer>>,因为 Map.Entry 内部类实现了 Comparable 接口,可以进行排序操作。
2. 实现 Comparator 接口,重写 compare 方法,指定排序规则。
3. 调用 Collections.sort() 方法进行排序。
以下是示例代码:
```java
import java.util.*;
public class MapSort {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
map.put("banana", 2);
map.put("pear", 4);
map.put("orange", 1);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
@Override
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
for (Map.Entry<String, Integer> entry : list) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
```
输出结果:
```
apple : 3
banana : 2
orange : 1
pear : 4
```
阅读全文