stream.peek
时间: 2023-10-26 19:08:13 浏览: 94
PeekProblems:错误使用 Java 8 Stream peek 方法的演示
5星 · 资源好评率100%
stream.peek方法的作用是在流的每个元素上执行指定的操作,在不修改流中元素的情况下返回一个新的流。它接受一个Consumer类型的参数,该参数指定了要执行的操作。在中间操作中使用peek方法可以方便地对流进行调试,了解每个操作之前和操作之后的中间值。
在引用的代码中,虽然调用了stream.peek(System.out::println),但没有任何输出。这是因为peek方法是一个中间操作,它只会在终止操作被调用时才会执行。在代码中,并没有调用任何终止操作,所以没有输出。如果想要输出流中的值,可以在peek方法后添加一个终止操作,例如forEach方法来打印出流中的元素。
下面是修改后的代码示例:
```java
public class PeekTestTwo {
public static void main(String[] args) {
Stream<Integer> stream = Arrays.asList(4, 7, 9, 11, 12).stream();
stream.peek(System.out::println).forEach(System.out::println);
}
}
```
现在,当运行这段代码时,会先输出每个元素的值,然后再打印出流中的元素值。这是因为在peek方法中,我们指定了打印每个元素的操作,而在forEach方法中,我们又指定了打印流中元素的操作。这样就能够看到每个操作之前和操作之后的中间值。
请注意,peek方法不会改变流中的元素,它只是提供了一种便捷的方式来查看流中每个元素的值。要改变流中的元素,需要使用其他的中间操作。
阅读全文