gpt4 book ai didi

java - 使用 java.util.stream.Stream 并行处理两个列表

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:07:15 24 4
gpt4 key购买 nike

对每个列表中的每个元素i 执行一个操作。可以按任何顺序处理元素。例如在旧的 java 中:

List<A> aList;
List<B> bList; // aList is larger than bList

for (int i=0; i<bList.size(), i++) {
aList.get(i).doSomethingWith(bList.get(i));
}

for (int j=i; j<aList.size(), j++) {
aList.get(j).doSomething();
}

哪种方法是使用 java.util.stream.Stream 实现此目的的最佳方式,以便可以并行处理元素?

最佳答案

您需要同时处理两个列表,所以我认为您不能自己流式传输列表。但是,您可以流式传输索引并对其进行处理:

IntStream.range(0, aList.size())
.parallel()
.forEach(i -> {
if (i < bList.size()) aList.get(i).doSomethingWith(bList.get(i));
else aList.get(i).doSomething();
});

关于java - 使用 java.util.stream.Stream 并行处理两个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22205166/

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