我正在尝试进入Java 8并绕过流和lambdas来解决各种问题并且陷入这个特定的问题,我通常使用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 = ...
Run Code Online (Sandbox Code Playgroud)
那个人并不像你希望的那样可行.你可能得到的最接近的可能是
IntStream.range(0, voterA.size())
.mapToObj(i -> voterA.get(i) + voterB.get(i))
.collect(toList());
Run Code Online (Sandbox Code Playgroud)
...但是在流上没有"zip"操作,很大程度上是因为两个不同的流可以在不同的点上分割背板分裂器,所以你不能正确排列它们.