小编Vov*_*mer的帖子

Stream.collect方法中的组合器如何在java 8中工作?

我创建了简单的演示:

public static void main(String[] args) {
        List<String> list2 = Arrays.asList("adf", "bcd", "abc", "hgr", "jyt", "edr", "biu");

String collect = list2.stream().collect(String::new, (res, elem) -> {
              res=res.concat(" ").concat(elem);
//            System.out.printf("res=%s, elem=%s\n", res.isEmpty(), elem);

        }, (res1, res2) -> {
            System.out.printf("res1=%s, res2=%s\n", res1, res2);            
        });
        System.out.println("collect=" + collect);
}
Run Code Online (Sandbox Code Playgroud)

问题是BiConsumer combiner部分collect根本没有运行.

如果我使用parallelStream()两个参数res1并且res2等于供应商,它就会运行String::new.

如何combinercollect方法中工作?

java java-8 java-stream

27
推荐指数
3
解决办法
6385
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1