加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

与java.util.stream.Stream并行处理两个列表

发布时间:2020-12-14 05:59:07 所属栏目:Java 来源:网络整理
导读:对于每个列表中的每个元素,执行操作.元素可以按任何顺序处理.例如在旧的 java中: ListA aList;ListB bList; // aList is larger than bListfor (int i=0; ibList.size(),i++) { aList.get(i).doSomethingWith(bList.get(i));}for (int j=i; jaList.size(),j
对于每个列表中的每个元素,执行操作.元素可以按任何顺序处理.例如在旧的 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();
    });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读