我不知道为什么我应该使用聚合函数。 我的意思是,如果提高性能,则假设聚合函数将并行执行。
https://docs.oracle.com/javase/tutorial/collections/streams/parallelism.html
但事实并非如此,根据文档,如果你不使用parallelStream()而不是stream(),那么代码将不会是并行的,所以 如果没有什么比这更好的话,我为什么要使用stream()?
这些代码不应该相同吗?
//it is not parallel
listOfIntegers.stream()
.forEach( e -> System.out.print(e+" "));
和
//it is parallel
listOfIntegers.parallelStream()
.forEach( e -> System.out.print(e+" "));
答案 0 :(得分:2)
如果您使用stream
,则会按顺序处理列表中的所有数据,而如果您使用parallelStream
,则可能无法按顺序处理您的数据。
考虑方法
static void test(Integer i){
try {
Thread.sleep((long) (1000*Math.random()));
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(i);
}
并使用parallelStream
和stream