【发布时间】:2021-10-19 04:55:22
【问题描述】:
我有一个方法如下:
public void method ()
{
List<String> list1 = someOperation();
List<List2Class> list2;
long failedCount = 0;
for (String element : list1) {
try {
list2 = someclass.method1(element);
list2 = someclass.method2(element);
someclass.saveToDB(list2);
} catch (Exception e) {
failedCount++;
}
}
//some checks on failedCount
}
我想将 for 循环转换为并行流,有人可以告诉我上述方法中的代码更改应该是什么吗? PS - method1 和 method2 正在返回 list2 的修改版本。
【问题讨论】:
-
看起来
list2只是someclass.method2(/* last element of list1 */)那里。你真的需要处理所有其他的吗? -
@AndyTurner 如果没有
try ... catch,那将是正确的。对于try catch,它可以是任何东西。更具体地说,最后没有失败。我怀疑这里是否有可能以任何有意义的方式使用 Streams。 -
我已将问题更新为更具体,每个方法都返回 list2 的修改版本,该版本将针对 for 循环中的每个元素保存到 db
-
从未使用过
someclass.method1(element)的结果。它被下一行someclass.method2(element)的结果覆盖。
标签: java java-8 stream parallelstream