2 回答
TA贡献1793条经验 获得超6个赞
我很确定您的班级Edge正在通过以下方式实施 Comparable:
class Edge implements Comparable
将您的类边缘声明更改为:
class Edge implements Comparable<Edge>
或者通过以下方式拆分您的返回逻辑:
Stream<Map.Entry<Node<City>, Edge>> sorted = map.entrySet().stream()
.sorted(Map.Entry.comparingByValue());
return sorted
.map(e -> e.getKey().getValue())
.collect(Collectors.toList());
问题是由于泛型对链式调用的类型推断。这可能会给你更多的细节。
TA贡献1876条经验 获得超7个赞
我没有你的课程,但我相信这就是你想要的。
Map<String, Integer> map = Map.of("Z", 10, "X", 8, "Y", 9);
// add entries to map ...
List<String> keys = map.entrySet().stream().sorted(
Comparator.comparing(e -> e.getValue())).map(
e -> e.getKey()).collect(Collectors.toList());
System.out.println(keys);
在你的例子中,.map(e -> e.getKey().getValue())应该是 .map(e ->e.getKey())
添加回答
举报