代码:
System.out.println(Stream.concat(Stream.of(1), Stream.of(1)).isParallel()); // false
System.out.println(Stream.concat(Stream.of(1).parallel(), Stream.of(1)).isParallel()); // true
System.out.println(Stream.concat(Stream.of(1), Stream.of(1).parallel()).isParallel()); // true
System.out.println(Stream.concat(Stream.of(1).parallel(), Stream.of(1).parallel()).isParallel()); // true
结论:连接的两个流,只要其中有一个是并行流,最终的流则为并行流
顺便放一个排序的特征,说明Spliterator
特征不受合并影响
System.out.println(Stream.concat(Stream.of(1, 2).sorted(), Stream.of(1)).spliterator().hasCharacteristics(Spliterator.SORTED)); // false
System.out.println(Stream.concat(Stream.of(1), Stream.of(1, 2).sorted()).spliterator().hasCharacteristics(Spliterator.SORTED)); // false
System.out.println(Stream.concat(Stream.of(1), Stream.of(1, 2).distinct()).spliterator().hasCharacteristics(Spliterator.SORTED)); // false
System.out.println(Stream.concat(Stream.of(1).distinct(), Stream.of(1)).spliterator().hasCharacteristics(Spliterator.SORTED)); // false