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

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:

主站蜘蛛池模板: 泗水县| 涟水县| 兴文县| 松溪县| 磐安县| 顺义区| 左贡县| 秭归县| 高淳县| SHOW| 栾川县| 嫩江县| 同心县| 林州市| 仁怀市| 巴林右旗| 安龙县| 商都县| 西平县| 昭平县| 绥阳县| 志丹县| 二连浩特市| 米易县| 富宁县| 紫阳县| 兴仁县| 得荣县| 龙川县| 沙坪坝区| 九龙城区| 桂东县| 楚雄市| 汉川市| 建宁县| 崇义县| 宁蒗| 利津县| 文成县| 门头沟区| 资中县|