官术网_书友最值得收藏!

Intermediate operations

Intermediate operations always return another stream and get lazily evaluated only when terminal operations are called. The feature of lazy evaluation optimizes intermediate operations when multiple operations are chained together as evaluation only takes place after terminal operation. Another scenario where lazy evaluation tends to be useful is in use cases of infinite or large streams as iteration over an entire stream may not be required or even possible, such as anyMatch, findFirst(), and so on. In these scenarios, short circuiting (discussed in the next section) takes place and the terminal operation exits the flow just after meeting the criteria rather than iterating over entire elements.

Intermediate operations can further be sub-divided into stateful and stateless operations. Stateful operations preserve the last seen value, as in methods such as sorted(), limit(), sequential(), and so on since they need them while processing the current record. For example, the limit() method needs to keep a check on the maximum number of elements allowed in that stream and it can only be achieved if we possess the count of records previously stored in the stream. A stateless operation has no such obligation to manage the state of stream and hence operations such as peek(), map(), filter(), and so on do not possess any state as such:

主站蜘蛛池模板: 曲水县| 芷江| 望奎县| 芮城县| 新野县| 平凉市| 本溪| 轮台县| 峨边| 青海省| 游戏| 柯坪县| 通渭县| 固阳县| 莫力| 柳州市| 松溪县| 塘沽区| 大理市| 专栏| 澄迈县| 广饶县| 晋中市| 崇州市| 仙游县| 化州市| 娱乐| 阳春市| 布尔津县| 民权县| 泾源县| 大安市| 团风县| 怀来县| 安庆市| 遂溪县| 翼城县| 呼伦贝尔市| 东丰县| 大埔县| 仁怀市|