gpt4 book ai didi

java - 如何使用 "reduce"将此循环转换为函数表达式?

转载 作者:行者123 更新时间:2023-11-30 02:08:16 25 4
gpt4 key购买 nike

我有这个 Java 8 代码:

Contact contact = new Contact("");
for (ContactEvent event : events) {
contact = contact.apply(event);
}

我想使用 Stream.reduce 方法将其转换为功能。我已经尝试过:

Contact contact = events.stream()
.reduce(new Contact(""),
(contact1, contactEvent) -> contact1.apply(contactEvent), //Ok!
(contact12, contact2) -> null); //I don't want this!

为什么我必须合并两个联系人?我应该在组合器中做什么?

如果我像上面一样返回null,它就可以正常工作。调试器甚至不执行该行(返回 null)。

最佳答案

事实上,在这种特定情况下你无法避免组合器函数。

但是,值得一提的是,组合器函数 (contact12, contact2) -> null 根本不会被调用。为了使组合器工作,流必须是并行的。否则,只会调用累加器函数。

关于java - 如何使用 "reduce"将此循环转换为函数表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com