Java——Stream流的peek方法
peek
方法是 Java 8 引入的流操作,它允许你在流的每个元素上执行一个简单的操作,同时它不会修改流中的元素。这个方法通常用于调试或者日志记录。
peek
方法的签名是这样的:
Stream<T> peek(Consumer<? super T> action)
这里的 Consumer<? super T>
是一个消费者函数式接口,你可以传递一个 lambda 表达式或方法引用来对流中的每个元素执行操作。
下面是一个使用 peek
方法的例子:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
public class PeekExample {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = numbers.stream();
stream.peek(n -> System.out.println("Processing element: " + n))
.forEach(n -> System.out.println("Element: " + n));
}
}
在这个例子中,peek
方法被用来打印出流中每个元素的值,然后在 forEach
中再次打印出相同的值。这是为了演示 peek
方法可以用于调试目的。
注意,peek
方法不应该用于修改流中的元素,因为这可能会影响后续的流操作。如果你需要修改元素,应该使用 map
方法。
评论已关闭