Stream方法使用-peek和foreach方法讲解

简介: Stream方法使用-peek和foreach方法讲解

Stream方法使用

peek和foreach方法

peek 和 foreach ,都可以用于对元素进行遍历然后逐个的进行处理。

但根据前面的介绍(详细可看Stream初相识篇),peek属于中间方法,而foreach属于终止方法。这也就意味着peek只能作为管道中途的一个处理步骤,而没法直接执行得到结果,其后面必须还要有其它终止操作的时候才会被执行;而foreach作为无返回值的终止方法,则可以直接执行相关操作。

publicvoidtestPeekAndforeach() {
List<String>sentences=Arrays.asList("hello world","Jia Gou Wu Dao");
// 演示点1: 仅peek操作,最终不会执行System.out.println("----before peek----");
sentences.stream().peek(sentence->System.out.println(sentence));
System.out.println("----after peek----");
// 演示点2: 仅foreach操作,最终会执行System.out.println("----before foreach----");
sentences.stream().forEach(sentence->System.out.println(sentence));
System.out.println("----after foreach----");
// 演示点3: peek操作后面增加终止操作,peek会执行System.out.println("----before peek and count----");
sentences.stream().peek(sentence->System.out.println(sentence)).count();
System.out.println("----after peek and count----");
}

输出结果可以看出, peek 独自调用时并没有被执行、但peek后面加上终止操作之后便可以被执行,而foreach 可以直接被执行:

----beforepeek--------afterpeek--------beforeforeach----helloworldJiaGouWuDao----afterforeach--------beforepeekandcount----helloworldJiaGouWuDao----afterpeekandcount----
相关文章
|
8月前
|
Java API 开发者
深入解析Java Stream API:为何要避免在forEach中执行复杂操作
深入解析Java Stream API:为何要避免在forEach中执行复杂操作
345 116
|
11月前
|
存储 人工智能 API
Qoder 正式开放订阅,Credits 耐用度提升1/3
Qoder 自 2025 年 8 月 21 日公测以来,以最强的上下文工程能力以及 Repo Wiki、Quest Mode 等广受好评的产品功能,收获了全球开发者的支持和喜爱。今天,Qoder 面向全球用户正式推出付费订阅计划,助力开发者开启高效流畅的编程之旅。
10801 2
|
缓存 NoSQL Java
SpringBoot实用开发篇第五章(整合第三方技术,jetcache,j2cache,Task)
SpringBoot实用开发篇第五章(整合第三方技术,jetcache,j2cache,Task)
|
监控 安全 Java
解析Spring Boot中的Actuator端点
解析Spring Boot中的Actuator端点
1021 0
|
监控 前端开发 Java
【技术开发】接口管理平台要用什么技术栈?推荐:Java+Vue3+Docker+MySQL
该文档介绍了基于Java后端和Vue3前端构建的管理系统的技术栈及功能模块,涵盖管理后台的访问、登录、首页概览、API接口管理、接口权限设置、接口监控、计费管理、账号管理、应用管理、数据库配置、站点配置及管理员个人设置等内容,并提供了访问地址及操作指南。
|
存储 Ubuntu 关系型数据库
如何创建数据库 PostgreSQL
【8月更文挑战第12天】
1005 4
如何创建数据库 PostgreSQL
|
前端开发 JavaScript 区块链
react18函数组件+antd使用指南-使用代码集合以及报错记录汇总
本文介绍了多个React开发中常见的问题及其解决方案,包括但不限于:1)`useForm`实例未连接到任何`Form`元素的警告及解决方法;2)监听页面滚动事件的实现方式;3)React 18与antd 5.8.6中定制主题的方法;4)React结合antd 4.x版本自定义主题色的步骤;5)解决`ResizeObserver loop`相关报错的技巧;6)处理React设计表单时遇到的CDN资源加载失败问题;7)解决onClick事件传参问题;8)修复类型错误等。每部分均提供详细分析与实用代码示例,帮助开发者快速定位并解决问题。
863 3
|
JSON API 数据安全/隐私保护
如何使用Fastapi上传文件?先从请求体数据讲起
如何使用Fastapi上传文件?先从请求体数据讲起
931 2
|
Java 编译器
java中instanceof使用详细介绍
java中instanceof使用详细介绍
804 0