gpt4 book ai didi

Java 8 流从两个或多个列表中添加值

转载 作者:搜寻专家 更新时间:2023-10-31 19:38:13 26 4
gpt4 key购买 nike

我正在尝试使用 Java 8 并围绕流和 lambda 表达式来解决各种问题,但被困在这个特定的问题上,我通常使用 forEach 并将值存储在 Map 中来解决。

您将如何使用 Java 8 中的新功能编写代码来获取预期列表?

List<Integer> voterA = Arrays.asList(1,2,3,4,5);
List<Integer> voterB = Arrays.asList(1,2,3,4,5);
List<List<Integer>> votes = Arrays.asList(voterA, voterB);

// expected list = (2,4,6,8,10)
List<Integer> sumVotes = ...

最佳答案

这并不像您希望的那样可行。你能得到的最接近的可能是

IntStream.range(0, voterA.size())
.mapToObj(i -> voterA.get(i) + voterB.get(i))
.collect(toList());

...但是流上没有“zip”操作,主要是因为两个不同的流可能具有在不同点拆分的后备拆分器,因此您无法将它们正确排列。

关于Java 8 流从两个或多个列表中添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592529/

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