并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流

基本数据类型优化

之前用到的很多Stream的方法由于都使用了泛型。所以涉及到的参数和返回值都是引用数据类型。
即使我们操作的是整数小数,但是实际用的都是他们的包装类
所以为对大数据量时装箱拆箱的时间消耗进行优化。Stream还提供了很多专门针对基本数据类型的方法

1
2
3
4
5
mapToInt
mapToLong
mapToDouble
flatMapToInt
flatMapToDouble

并行流

使用parallel方法将串行流转换成并行流,也可以通过parallelStream直接获取并行流对象

1
2
3
4
5
6
7
8
9
10
Stream<Integer> stream = Stream.of(1,2,3,4,5,6,7,8,9,10);
Integer sum = stream.parallel()
.peek(new Consumer<Integer>() {
public void accept(Integer num) {
System.out.println(num+Thread.currentThread().getName());
}
})
.filter(num->num>5)
.reduce((result.ele)->result+ele)
.get();