提问人:Lord M-Cube 提问时间:10/10/2022 更新时间:10/10/2022 访问量:103
Java 流短路操作:我们可以假设一个一个的处理吗?
Java stream short circuiting operations: Can we assume one by one processing?
问:
关于短路操作的 JavaDoc 规范只讨论无限和有限流以及这些流的终止。
但我想知道我们是否可以安全地假设这些元素将以“一个接一个”的方式进行处理,或者换句话说:我们是否可以假设不仅有短路,而且即使是获得结果所需的最少处理?
例如:
Object first = list.stream().map(expensiveMappingFunction).findFirst().orElse(null);
现在很高兴知道我是否可以确定只处理一个元素,因为映射函数可能需要每个元素很长时间(或者我真的只想调用一次的任何其他原因)。否则我会选择旧的 -check 和 .empty()
iterator().next()
JavaDoc 似乎没有具体说明这一点,所以也许我们不能假设这一点。
但也许有某种像这样的“非官方惯例”。
或者,也许我只是对 Java 流的理解还不够,这是一个愚蠢的问题(在这种情况下,您可能会很乐意指出它!
答: 暂无答案
评论
#stream
#findFirst
Stream#parallel
#findFirst