Java Stream peek() 方法及实例
在Java中,Stream为处理数据提供了一个强大的选择,在这里我们将讨论其中一个非常常用的方法,名为 peek(),它是一个消费者动作 ,基本上返回一个由这个流的元素组成的流,另外在每个元素上执行所提供的动作,因为元素从结果流中被消耗。这是一个中间操作, 因为它创建了一个新的流,当它被遍历时,包含了初始流中符合给定谓词的元素。
语法
这里,Stream是一个接口,T是流元素的类型。 action 是一个非干扰性的动作,当元素从流中被消耗时,该函数返回新的流。现在我们需要通过下面列出的干净的java程序来了解peek()方法的生命周期,即其内部工作。
注意
- 这个方法的存在主要是为了支持调试,当你想看到元素流过管道中的某一点时。
- 从Java 9开始,如果事先知道元素的数量并且在流中没有变化,由于性能优化,.peek()语句将不会被执行。可以通过改变元素数量的命令(正式的)来强制执行其操作,例如:.filter(x -> true)。
- 在没有任何终端操作的情况下使用peek不会有任何作用。
例1 :
输出
从上面的输出中,我们可以看出,这段代码不会产生任何输出:
例2 :
输出