假设我有一个HasMap<String, Student>
,其中Student
有方法double getAverage()
,是否有一种聪明的方法可以通过降低平均值从该List<String>
中检索键的Map
?
我当时正在考虑使用流进行压缩,但是这行不通:
List<String> ordered = studentMap.entrySet().stream()
.sorted((e1, e2) -> e2.getValue().getAverage().compareTo(e1.getValue().getAverage()))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
最佳答案
如果您的.getAverage()
方法确实返回了double
,则没有.compareTo()
方法。
改用这个:
.sorted((e1, e2) -> Double.compare(e2.getValue().getAverage(), e1.getValue().getAverage()))