小编cli*_*995的帖子

Java Stream Api:使用reduce来填充集合

我很了解collect() 方法和Collectors 对象。然而,我真的不明白为什么使用reduce来填充集合是不好的。

` 用户 u1 = 新用户(“汤姆”);
用户 u2 = 新用户(“安娜”);
用户 u3 = 新用户(“爱丽丝”);

    BiFunction<Set<String>, User, Set<String>> accumulator = (acc, u) -> {
        acc.add(u.getLogin());
        return acc;
    };
    BinaryOperator<Set<String>> combiner = (s1, s2) -> {
        s1.addAll(s2);
        return s2;
    };

    Stream<User> stream = Stream.of(u1, u2, u3);
    Set<String> logins = new HashSet<>();
    stream.reduce(logins, accumulator, combiner);
    System.out.println(logins);// [Tom, Alice, Anna]`
Run Code Online (Sandbox Code Playgroud)

这是糟糕的代码设计,还是幕后的其他原因?

累积应该在不可变对象上进行吗?

java java-stream

1
推荐指数
1
解决办法
110
查看次数

标签 统计

java ×1

java-stream ×1