排序链接哈希地图
2022-08-31 20:46:44
我如何根据LinkedHashMap的值对LinkedHashMap进行排序,因为LinkedHashMap包含字符串和整数。因此,我需要根据整数值对其进行排序。多谢
我如何根据LinkedHashMap的值对LinkedHashMap进行排序,因为LinkedHashMap包含字符串和整数。因此,我需要根据整数值对其进行排序。多谢
List<Map.Entry<String, Integer>> entries =
new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(entries, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> a, Map.Entry<String, Integer> b){
return a.getValue().compareTo(b.getValue());
}
});
Map<String, Integer> sortedMap = new LinkedHashMap<String, Integer>();
for (Map.Entry<String, Integer> entry : entries) {
sortedMap.put(entry.getKey(), entry.getValue());
}
现在,使用Java 8流,这要容易得多:您不需要中间映射来排序:
map.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.forEach(entry -> ... );