map根据value大小排序 java
时间: 2024-05-07 16:21:47 浏览: 84
在 Java 中,可以通过将 Map 中的 Entry 对象存储到 List 中,然后通过 Collections.sort() 方法对 List 进行排序。以下是一个示例代码:
```java
import java.util.*;
public class SortMapByValue {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("A", 5);
map.put("B", 3);
map.put("C", 9);
map.put("D", 1);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
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);
}
}
```
这个程序将输出 `{D=1, B=3, A=5, C=9}`。可以看到,原始 Map 中的键值对被按照值从小到大的顺序存储到 sortedMap 中。
阅读全文