请说明 Java Stream 的 peek() 方法的用途和副作用,并现场写一段代码验证它能否修改流中的元素。
考察说明
考察对 Stream 中间操作语义、函数式接口副作用的理解及编码验证能力
回答思路
- 准确说明 peek() 是中间操作,用于查看每个元素,通常用于调试
- 解释 peek() 接收 Consumer,其副作用(修改元素)依赖于元素可变性
- 编写代码演示:对于可变对象(如 List),peek 内修改对象属性会生效;对于不可变对象或重新赋值引用不会影响流后续操作
- 说明 peek() 不应依赖副作用来完成业务逻辑,因为其执行时机不定
- 代码展示正确处理,避免并发或短路操作导致的不确定性
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。