【发布时间】:2015-07-21 07:55:22
【问题描述】:
不明白下面方法的第三个参数的用处:
<R> R collect(Supplier<R> supplier,
BiConsumer<R,? super T> accumulator,
BiConsumer<R,R> combiner)
来自javaDoc:
这会产生相当于:
R result = supplier.get(); for (T element : this stream) accumulator.accept(result, element); return result;
如您所见,未使用参数combiner。例如,下面会将字符串累积到一个 ArrayList 中:
List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add,
ArrayList::addAll);
但我预计会这样:
List<String> asList = stringStream.collect(ArrayList::new, ArrayList::add );
【问题讨论】:
标签: java java-8 java-stream