结论:Stream能用parallel()就别放过
ps:请读者自己学习研究在哪些场景下可以用parallel,推荐书籍《Java8实战》
验证1: 手动塞数据和使用Stream的collect收集区别(差别不大)
验证2: 使用Stream的parallel(),效率提高了50%左右
测试案例,可自取验证
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
IntStream.range(0, 10000000).boxed()
.forEach(i -> list.add(i));
int MAX_HANDLE = 100000;
int MAX_HANDLE_TOTAL = (list.size() + MAX_HANDLE - 1) / MAX_HANDLE;
//数据分割 skip 手动塞数据
long start = System.currentTimeMillis();
List<List<Integer>> result1 = new ArrayList<>(MAX_HANDLE_TOTAL);
Stream.iterate(0, n -> n + 1)
.limit(MAX_HANDLE_TOTAL)
.parallel()
.forEach(i -> {
int fromIndex = i * MAX_HANDLE;
int toIndex =