在多个线程中使用forEach()或使用forEach()和lambdas进行java集合迭代
假设我有一个数组,里面有数千个独立的对象。现在我想传递它们中的每一个,并执行相同的操作,例如,更改特定字段的值
乍一看,Java 8中有多种方法可以完成这类任务,例如:
forEach();
内有lambda表达式:
itemsArr.forEach(item -> item.setValue("test"));
forEach();
使用迭代器李>- 将数组分离为多个批次/块,并在单独的线程中处理每个批次。例如:定义两个线程,从#0到999的元素将在线程«a»中执行,其余元素将在线程«B»中执行李>
最终的结果应该是:100%的数组元素都应该关心
完成这项任务的最佳方法是什么
更新:
有一个类似的question但谈到另一个方面,我感兴趣的不是不同类型的循环性能比较(^{
# 1 楼答案
使用并行流,JVM将使用多个线程处理该流:
虽然您似乎有一个集合,而不是数组,所以: