Ben*_*nao 2 java sorting generics hashmap comparator
所以我遇到了这种能够按值对HashMaps进行排序的方法.
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
return map.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue())
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e1,
LinkedHashMap::new
));
}
Run Code Online (Sandbox Code Playgroud)
我想使用该reversed()方法,Comparator但我似乎找不到合适的地方.
reversed()应该在Comparator返回的方法上调用该方法comparingByValue().遗憾的是,Java的类型推断在这里分解,因此您必须指定泛型类型:
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue
(Map<K, V> map) {
return map.entrySet()
.stream()
.sorted(Map.Entry.<K, V> comparingByValue().reversed())
// Type here -----^ reversed() here -------^
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(e1, e2) -> e1,
LinkedHashMap::new
));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1368 次 |
| 最近记录: |