1. 前言
我在
Java 8 Stream API中的 map 和flatMap
中讲述了
Java8 Stream API
中
map
操作和
flatMap
操作的区别。然后有小伙伴告诉我
peek
操作 也能实现元素的处理。但是你知道
map
和
peek
的区别吗?
map
我们在开头文章已经讲过了,你可以去详细了解一下它,本文将重点讲解一下
peek
操作。
2. peek
peek
操作接收的是一个
Consumer<T>
函数。顾名思义 peek 操作会按照
Consumer<T>
函数提供的逻辑去消费流中的每一个元素,同时有可能改变元素内部的一些属性。
这里我们要提一下这个
Consumer<T>
以理解 什么是消费。
2.1 什么是消费 (Consumer)
package java.util.function;
import java.util.Objects;
@FunctionalInterface
public interface Consumer<T> {
void accept(T t);
// 嵌套accept , 顺序为先执行 accept 后执行参数里的 after.accpet
default