我试图进入 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”操作,主要是因为两个不同的流可以具有在不同点分裂的后备分裂器,因此您无法将它们正确排列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)