为什么并行流在Java 8中被顺序地收集
- 论坛
- 为什么并行流在Java 8中被顺序地收集
10 浏览
为什么并行流在Java 8中被顺序地收集
为什么forEach
会以随机顺序打印数字,而collect
总是按照原始顺序收集元素,即使是从并行流中收集?
Integer[] intArray = {1, 2, 3, 4, 5, 6, 7, 8}; ListlistOfIntegers = new ArrayList<>(Arrays.asList(intArray)); System.out.println("Parallel Stream: "); listOfIntegers .stream() .parallel() .forEach(e -> System.out.print(e + " ")); System.out.println(); // 收集器 List l = listOfIntegers .stream() .parallel() .collect(Collectors.toList()); System.out.println(l);
输出:
Parallel Stream: 8 1 6 2 7 4 5 3 [1, 2, 3, 4, 5, 6, 7, 8]