
我认为基本上只是类型推断失败了-因为
reverse()调用妨碍了预期的参数类型
sorted()和lambda表达式。
如果将类型指定为
comparingInt显式,则可以执行以下 *** 作:
list.stream() .sorted(Comparator.<Pair<String, Integer>>comparingInt(p -> p.v).reversed()) .map(p -> p.k) .forEach(System.out::println);
或者,如果您只是先声明比较器:
Comparator<Pair<String, Integer>> forward = Comparator.comparingInt(p -> p.v);list.stream() .sorted(forward.reversed()) .map(p -> p.k) .forEach(System.out::println);
在我看来,应该有一个
Stream.reverseSorted让这样的事情真的很容易的事情,但是看起来并不存在:(
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)