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

对于每个列表中的每个元素,执行操作.元素可以按任何顺序处理.例如在旧的 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();
    });

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写:&#160;一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...