怎样理解 Stream 的 collect 方法

2017-05-27 00:05:35 +08:00
 gino86

collect 的第三个参数是干什么用的,即使是一个空代码块运行结果还是不变

public class Stream2Coll {

    public static void main(String[] args) {
        List<String> stupidList = new ArrayList<>();

        stupidList.add(" hello ");
        stupidList.add("world ");

        LinkedList<Object> collect = stupidList.stream().map(String::trim).collect(
                LinkedList::new,
                LinkedList::add,
                (listOne, listTwo) ->{
                    //有没有这句结果一样
                    listOne.addAll(listTwo);
                });

        collect.forEach(System.out::println);
    }
}
2963 次点击
所在节点    程序员
2 条回复
napsterwu
2017-05-27 00:17:46 +08:00
看文档啊 最后一个是 combiner
gino86
2017-05-27 00:29:15 +08:00
@napsterwu 谢谢,根据你的关键字 combiner 搜索到结果。貌似第三个参数只有在使用 parallelStream 的前提下才有用。因为我这里使用的是串行流,所有结果都在一个线程中处理,所以并不需要进行合并操作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/364114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX