// 创建一个Map并初始化
Map<String, Integer> map = new TreeMap<>();
map.put("apple", 5);
map.put("orange", 99);
map.put("banana", 99);
map.put("pear", 99);
//key排序权重
Map<String, Integer> keySort = new TreeMap<>();
keySort.put("orange", 3);
keySort.put("banana", 12);
// 将Map转换为List
List<Map.Entry<String, Integer>> entryList = new ArrayList<>(map.entrySet());
// 对List进行排序
Collections.sort(entryList, (o1, o2) -> {
// 先按照value降序排序
int result = o2.getValue().compareTo(o1.getValue());
// 如果value相同,则按照key自定义排序
if (result == 0) {
result = keySort.getOrDefault(o2.getKey(), 0).compareTo( keySort.getOrDefault(o1.getKey(), 0));
}
return result;
});
// 输出排序后的结果
for (Map.Entry<String, Integer> entry : entryList) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
Map根据value降序, key自定义排序