实际上我是在试图理解collect的重载方法。
<R> R collect(Supplier<R> supplier,
BiConsumer<R, ? super T> accumulator,
BiConsumer<R, R> combiner);
我看过Java API的文档,但无法在此方法上建立坚实的概念,我试图将此方法与以下示例相关联,但与最后一个参数(合并器)相混淆。
任何人都可以彻底解释
public Map<String, Choice> getMap1(List<Choice> choices){
return choices.stream()
.collect(HashMap<String, Choice> :: new,
(m, c) -> m.put(c.getName(), c),
(m, c) -> {} );
}
注意::如果我通过null代替组合器,则会出现NullPointerException
如果用示例参考进行解释,那会很好。