gpt4 book ai didi

java - 将对象列表转换为 map

转载 作者:行者123 更新时间:2023-11-29 09:58:35 26 4
gpt4 key购买 nike

我正在尝试将玩家列表转换为 map 。播放器包含名称并作为变量运行。

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));

我的问题是我试图通过使用流组合运行而不是通过来转换为 map 。

尝试每个值并合并值,如下所示,并获得预期结果。

playerList.forEach(n -> {
mapVal.merge((n.getName()), (n.getDistance()), (val1, val2) -> IntStream.of(val1, val2).sum());
});

结果将是 {Dhoni=9292, Jaddu=5798, Virat=17904},寻找使用流的解决方案。

最佳答案

您可以将 toMap 收集器用作:

Map<String, Integer> mapVal = playerList.stream()
.collect(Collectors.toMap(Player::getName,
Player::getDistance, Integer::sum));

groupingBy为:

Map<String, Integer> mapVal = playerList.stream()
.collect(Collectors.groupingBy(Player::getName,
Collectors.summingInt(Player::getDistance)));

关于java - 将对象列表转换为 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58953994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com