java中hashmap按value排序
时间: 2023-04-25 11:00:38 浏览: 219
Java中的HashMap是无序的,它不支持按照value排序。如果需要按照value排序,可以将HashMap中的键值对转换为List,然后使用Collections.sort()方法对List进行排序,最后再将排序后的List转换为HashMap。具体实现可以参考以下代码:
```
// 创建一个HashMap
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 10);
map.put("B", 5);
map.put("C", 20);
map.put("D", 15);
// 将HashMap转换为List
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
// 使用Collections.sort()方法对List进行排序
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.getValue().compareTo(o2.getValue());
}
});
// 创建一个新的有序HashMap
LinkedHashMap<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
// 输出排序后的HashMap
System.out.println(sortedMap);
```
输出结果为:{B=5, A=10, D=15, C=20},即按照value从小到大排序的HashMap。
阅读全文