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

前端之家收集整理的这篇文章主要介绍了与java.util.stream.Stream并行处理两个列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于每个列表中的每个元素,执行操作.元素可以按任何顺序处理.例如在旧的 java中:
  1. List<A> aList;
  2. List<B> bList; // aList is larger than bList
  3.  
  4. for (int i=0; i<bList.size(),i++) {
  5. aList.get(i).doSomethingWith(bList.get(i));
  6. }
  7.  
  8. for (int j=i; j<aList.size(),j++) {
  9. aList.get(j).doSomething();
  10. }

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

解决方法

您需要并行处理这两个列表,所以我认为您不能自己流式传输列表.但是,您可以流式传输索引并对其进行处理:
  1. IntStream.range(0,aList.size())
  2. .parallel()
  3. .forEach(i -> {
  4. if (i < bList.size()) aList.get(i).doSomethingWith(bList.get(i));
  5. else aList.get(i).doSomething();
  6. });

猜你在找的Java相关文章