Java 中有没有一种方法可以将函数应用于 Stream
的所有元素而不破坏 Stream
链?我知道我可以调用 forEach
,但该方法返回 void
,而不是 Stream
。
原文由 alexgbelov 发布,翻译遵循 CC BY-SA 4.0 许可协议
Java 中有没有一种方法可以将函数应用于 Stream
的所有元素而不破坏 Stream
链?我知道我可以调用 forEach
,但该方法返回 void
,而不是 Stream
。
原文由 alexgbelov 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
有(至少)3种方式。为了示例代码,我假设您想调用 2 个消费者方法
methodA
和methodB
:A. 使用
peek()
:尽管文档说只将它用于“调试”,但它确实有效(并且现在正在生产中)
B、使用
map()
调用方法A,然后将元素返回到流中:这可能是最“可接受”的方法。
C. 在
forEach()
中做两件事:这是最不灵活的,可能不适合您的需要。