假设我有一个内部有数千个独立对象的数组。现在我想要传递它们并执行相同的操作,例如,更改特定字段的值。
乍一看,Java 8中有多种方法可以执行此类任务,例如:
forEach();
里面有lambda表达式:itemsArr.forEach(item -> item.setValue("test"));
forEach();
with iterator。最终结果应该是:100%的数组元素应该得到关注 这项任务的最佳方法是什么?
更新
有一个类似的question,但谈到另一个方面,我很感兴趣,不是不同类型的循环性能比较(while
,for
,{{1但是在数组遍历任务中威胁与lambdas 的性能比较?
答案 0 :(得分:8)
使用并行流,JVM将使用多个线程处理该流:
Arrays.stream(itemsArr).parallel().forEach(item -> item.setValue("test"));
虽然你似乎有一个Collection,而不是一个数组,所以:
itemsArr.parallelStream().forEach(item -> item.setValue("test"));