📜  Java中的 Stream peek() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:26.695000             🧑  作者: Mango

Java中的Stream peek()方法及示例

在Java Stream中,我们可以使用peek()方法获取Stream中的元素并进行一些操作。peek()方法在Stream中的每个元素进行操作时,在Stream不做其他操作的情况下执行给定的操作

该方法接受一个Consumer作为参数,表示要执行的操作。在每个元素上调用该函数后,顶级操作将继续。

peek()方法的语法

peek()方法的语法如下:

Stream<T> peek(Consumer<? super T> action)

其中,T表示Stream中包含的元素类型,action表示要执行的操作。

peek()方法的返回值

peek()方法返回的是具有相同元素类型的新Stream。新Stream作为一个中间操作返回,因此可以用来继续执行任何其他Stream操作。

peek()方法的示例

下面是一个使用peek()方法的示例:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

numbers.stream()
    .peek(e -> System.out.println("原始值: " + e))
    .map(n -> n * 2)
    .peek(e -> System.out.println("操作后的值: " + e))
    .collect(Collectors.toList());

输出结果为:

原始值: 1
操作后的值: 2
原始值: 2
操作后的值: 4
原始值: 3
操作后的值: 6
原始值: 4
操作后的值: 8
原始值: 5
操作后的值: 10

在这个例子中,我们首先创建了一个包含Integers的List对象。使用Stream的peek()方法,我们可以在map()方法操作之前和之后输出Stream中的元素值。map()方法使Stream中的每个元素都乘以2,以便在这一步操作之后在输出值。

通过这个例子可以看到,peek()方法在Stream中间操作时,可以方便地进行调试和记录日志,以便更好地理解Stream的流程。