【发布时间】:2024-04-12 03:05:01
【问题描述】:
有下一张原图:
G1=[7,8,45,6,9]
G2=[3,9,34,2,1,65]
G3=[6,5,9,1,67,5]
其中 G1、G2 和 G3 是人群的年龄组,我怎样才能创建这样的新地图:
45=[7,8,45,6,9]
65=[3,9,34,2,1,65]
67=[6,5,9,1,67,5]
其中新键是每个组中的最大年龄。
我试过这个:
Map<Integer, List<Integer>> newMap = originalMap.entrySet().stream()
.collect(Collectors.toMap(Collections.max(x -> x.getValue()), x -> x.getValue()));
但是编译器在这段代码中告诉我:“这个表达式的目标类型必须是一个函数式接口”:
Collections.max(x -> x.getValue())
我们将不胜感激。
【问题讨论】:
标签: java collections java-8 java-stream functional-interface