假设我有一个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()))

09-27 09:48