Tag: fusion

Java流懒惰与融合和短路

我正在尝试在Java流API中形成一个关于懒惰评估应用的cocise和一致的理解。 这是我目前理解的: 元素仅在需要时被消耗,即流是惰性的,并且中间操作是惰性的,例如filter,仅在需要时才过滤。 中间操作可以融合在一起(如果它们是无状态的)。 短路操作不需要处理整个流。 我想要做的就是将所有这些想法结合起来,确保我不会歪曲任何事情。 我发现它很棘手,因为每当我阅读任何有关Java流的文献时,它都会说它们是懒惰的或利用懒惰的评估,然后非常可互换地开始讨论优化,如融合和短路。 所以我说对于以下内容是对的吗? 融合是如何在流API中实现延迟评估 – 即消耗元素,并且尽可能将操作融合在一起。 我认为如果不存在融合那么我们肯定会回到急切的评估,因为替代方案只是处理每个中间操作的所有元素,然后再转移到下一个中​​间操作? 如果没有融合或懒惰的评估,短路是可能的,但通过这两个原则的实施,在流的背景下是非常有帮助的吗? 我对此有任何进一步的见解和清晰度表示感谢。