Java,map = sortDescend(map)
时间: 2023-06-26 09:03:53 浏览: 84
这段代码的作用是对 Java 中的 Map 对象按照 value 进行降序排序,并返回排序后的 Map 对象。
以下是代码示例:
```java
public static <K, V extends Comparable<? super V>> Map<K, V> sortDescend(Map<K, V> map) {
Map<K, V> result = new LinkedHashMap<>();
map.entrySet().stream()
.sorted(Map.Entry.<K, V>comparingByValue().reversed())
.forEachOrdered(entry -> result.put(entry.getKey(), entry.getValue()));
return result;
}
```
代码的核心是使用了 Java 8 中的 Stream API,将 Map 转换为一个 entrySet 流,然后使用 sorted 方法按照 value 进行降序排序,并最终通过 forEachOrdered 方法将排序后的 entry 重新放入 LinkedHashMap 中,从而保证了排序后的顺序不变。最后返回排序后的 Map 对象。
需要注意的是,该方法只能对实现了 Comparable 接口的 value 进行排序,否则会抛出 ClassCastException 异常。如果需要对非 Comparable 的 value 进行排序,可以传入一个自定义的 Comparator 对象进行排序。
阅读全文