我正在阅读流抽象的java 8 API,但我不太理解这句话:
中间操作返回一个新流.他们总是懒惰; 执行诸如filter()之类的中间操作实际上并不执行任何过滤,而是创建一个新流,当遍历时,该流包含与给定谓词匹配的初始流的元素.在执行管道的终端操作之前,不会开始遍历管道源.
当过滤操作创建新流时,该流是否包含已过滤的元素?似乎理解流仅在遍历时才包含元素,即具有终端操作.但是,包含过滤流的内容是什么?我糊涂了!!!
在Java 8 Stream APIfilter
中,对 、和map
等中间操作的描述peek
被提及为
...该流的元素...
但是,流式中间操作似乎filter
一次处理并返回一个单独的“元素”。例如,Java 8 流操作执行顺序问题(参见输出)和答案。
API 描述filter
为
返回一个由该流中与给定谓词匹配的元素组成的流。
但是, Java 8 流操作执行顺序问题中提到的代码似乎一次处理并返回一个单独的元素。请澄清 API 提及的“元素”与代码中单个“元素”的明显处理之间的脱节。
谢谢。