HashMap进行排序
时间: 2023-11-08 20:04:14 浏览: 40
HashMap是无序的,不能直接进行排序。但可以将HashMap的键值对放入List中,再对List进行排序。
例如,对HashMap按照键值从小到大排序:
```java
HashMap<Integer, String> map = new HashMap<>();
map.put(2, "b");
map.put(1, "a");
map.put(3, "c");
List<Map.Entry<Integer, String>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, String>>() {
@Override
public int compare(Map.Entry<Integer, String> o1, Map.Entry<Integer, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
for (Map.Entry<Integer, String> entry : list) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
```
输出结果:
```
1: a
2: b
3: c
```
其中,`map.entrySet()`返回HashMap中所有键值对的Set集合,将其放入List中。
`Collections.sort()`方法对List进行排序,传入自定义的比较器对象,比较器实现了按照键值从小到大的排序规则。
最后,遍历排序后的List,输出键值对。