stream流中的peek是什么方法?
时间: 2023-11-29 08:04:32 浏览: 45
在Java中,`peek()`是一个中间操作方法,可以用于Stream流中。它返回由原始流的元素组成的新流,在访问每个元素时都会调用给定的操作函数。该函数不会修改流中的元素,而是在每个元素处执行给定的操作。
`peek()`方法的作用是可以在中间操作时查看Stream中下一个元素而不移除它,对于调试和测试非常有用。
例如,下面的代码使用peek()方法来查看Stream中下一个元素:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.peek(num -> System.out.println("peeking element: " + num))
.filter(n -> n % 2 == 0)
.sum();
System.out.println("sum of even numbers: " + sum);
```
输出结果:
```
peeking element: 1
peeking element: 2
peeking element: 3
peeking element: 4
peeking element: 5
sum of even numbers: 6
```
在上面的代码中,`peek()`方法用于查看Stream中的每个元素,判断是否为偶数,并计算偶数的总和。在运行过程中,我们可以看到peek()方法打印了每个元素的值。