stream流中的peek和foreach区别
时间: 2024-04-24 21:23:18 浏览: 70
Java 8 Stream操作类型及peek示例解析
5星 · 资源好评率100%
stream流中的`peek`和`forEach`方法是用于对流中的元素进行处理的方法,它们之间有一些区别:
1. `peek`方法:`peek`方法接收一个`Consumer`函数参数,对流中的每个元素执行该函数,并返回与原始流相同的流。它主要用于在处理流的过程中进行调试、观察或记录操作,而不会产生新的流。
```java
stream.peek(element -> System.out.println("Peek: " + element)).forEach(System.out::println);
```
上述代码将会在处理每个元素时,先打印出该元素的内容,然后再将其传递给下一个操作。注意,`peek`方法不会改变流中元素的值。
2. `forEach`方法:`forEach`方法接收一个`Consumer`函数参数,对流中的每个元素执行该函数,但不返回任何结果。它主要用于迭代流中的元素,并对每个元素执行特定操作,比如打印每个元素的值。
```java
stream.forEach(System.out::println);
```
上述代码将会迭代流中的每个元素,并打印出每个元素的值。
总结来说,`peek`方法可以在处理流的过程中进行调试或记录操作,并返回原始流,而`forEach`方法主要用于迭代流中的元素并执行某些操作,不返回任何结果。
阅读全文