java根据map的value值排序
时间: 2023-04-25 10:02:36 浏览: 86
浅谈Java之Map 按值排序 (Map sort by value)
可以使用Java中的Collections工具类的sort()方法,结合自定义的Comparator实现根据Map的value值排序。
具体步骤如下:
1. 将Map转换为List,List中的每个元素是一个Entry对象,包含key和value。
2. 自定义一个Comparator,比较两个Entry对象的value值大小。
3. 调用Collections.sort()方法,传入List和自定义的Comparator,即可实现根据Map的value值排序。
示例代码如下:
```
import java.util.*;
public class MapSortByValue {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("apple", 5);
map.put("banana", 3);
map.put("orange", 7);
map.put("pear", 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());
}
});
for (Map.Entry<String, Integer> entry : list) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
}
}
```
输出结果为:
```
pear : 2
banana : 3
apple : 5
orange : 7
```
阅读全文