【发布时间】:2020-03-16 03:36:17
【问题描述】:
我正在尝试将玩家列表转换为地图。 player 包含名称并作为变量运行。
List<Player> runnerList = Arrays.asList(new Player("Virat", 4654), new Player("Jaddu", 5798),
new Player("Dhoni", 4581), new Player("Virat", 8709), new Player("Dhoni", 4711),
new Player("Virat", 4541));
我的问题是我试图通过使用流组合运行而不是通过来转换为地图。
对每个都进行了尝试并合并了值,如下所示,并获得了预期的结果。
playerList.forEach(n -> {
mapVal.merge((n.getName()), (n.getDistance()), (val1, val2) -> IntStream.of(val1, val2).sum());
});
结果将是 {Dhoni=9292, Jaddu=5798, Virat=17904},正在寻找使用流的解决方案。
【问题讨论】:
-
什么
mapVal? -
mapVal 是 hashMap 类型
-
很好奇为什么你需要
IntStream.of(val1, val2).sum()而不是val1 + val2
标签: java hashmap java-stream