java中map实现value值排序
时间: 2024-05-04 17:16:46 浏览: 114
Java中的Map本身是不支持按照value排序的,但可以通过以下步骤来实现:
1. 将Map中的key-value对转换成List集合,List中的元素为Map.Entry类型。
2. 通过Collections.sort方法,传入自定义Comparator实现按照value排序。
3. 将排序后的List转换回Map。
以下是示例代码:
```java
Map<String, Integer> map = new HashMap<>();
map.put("a", 3);
map.put("b", 1);
map.put("c", 2);
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.getValue().compareTo(o2.getValue());
}
});
Map<String, Integer> sortedMap = new LinkedHashMap<>();
for (Map.Entry<String, Integer> entry : list) {
sortedMap.put(entry.getKey(), entry.getValue());
}
System.out.println(sortedMap);
```
输出结果为:{b=1, c=2, a=3}。
阅读全文