CarpenterLee / JavaLambdaInternals

深入理解Java函数式编程和Streams API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

疑问

xixifeng opened this issue · comments

Stream<String> stream = Stream.of("I", "love", "you", "too");
List<String> list = stream.collect(ArrayList::new,ArrayList::add,(t,u)-> {
			System.out.println("t:" + t+" u:" + u);
			t.addAll(u);
});
System.out.println(list);

谢谢, 你启发(正反参半)了我.

这个例子,collect的第三个参数并没有执行,若能举一个体现第三个参数作用的例子会更好.

Stream stream = Stream.of("I", "love", "you", "too").parallel();换成并行流时候,第三个参数会起作用

@xixifeng 第三个是merge函数,在Stream并发时会对输入做切分,分别执行中间的过程,最后合并结果,这个时候就有效果了。