java 8 Stream中操作类型和peek的使用
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
简介
java 8 stream作为流式操作有两种操作类型,中间操作和终止操作。这两种有什么区别呢?
我们看一个peek的例子:
上面的例子中,我们的本意是打印出Stream的值,但实际上没有任何输出。
为什么呢?
中间操作和终止操作
一个java 8的stream是由三部分组成的。数据源,零个或一个或多个中间操作,一个或零个终止操作。
中间操作是对数据的加工,注意,中间操作是lazy操作,并不会立马启动,需要等待终止操作才会执行。
终止操作是stream的启动操作,只有加上终止操作,stream才会真正的开始执行。
所以,问题解决了,peek是一个中间操作,所以上面的例子没有任何输出。
peek
我们看下peek的文档说明:peek主要被用在debug用途。
我们看下debug用途的使用:
上面的例子输出:
上面的例子我们输出了stream的中间值,方便我们的调试。
为什么只作为debug使用呢?我们再看一个例子:
上面的例子我们使用peek将element转换成为upper case。然后输出:
输出:
可以看到map是真正的对元素进行了转换。
当然peek也有例外,假如我们Stream里面是一个对象会怎么样?
log.info("{}",userList);
输出结果:
10:25:59.784 [main] INFO com.flydean.PeekUsage - [PeekUsage.User(name=kkk), PeekUsage.User(name=kkk), PeekUsage.User(name=kkk)]
我们看到如果是对象的话,实际的结果会被改变。
结论
我们在本文中讲解了stream的两个操作类型,并总结了peek的使用。希望大家能够掌握。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-04-23
本文作者:flydean
本文来自:“掘金”,了解相关信息可以关注“掘金”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
好程序员大数据培训分享怎样进行大数据入门学习
好程序员大数据培训分享怎样进行大数据入门学习,对于大数据的入门学习,基础不一样,起点就会不一样。今天先来说说,对于零基础的同学想要学习大数据的方式方法吧!很多人可能感到不可思议,零基础怎么可能学习大数据,没有编程基础怎么能入门呢?其实这个观点是很正确的,对于大数据的开发而言,是需要一定的编程基础的,所以我们的大数据入门级课程就落在了编程语言的学习。现在一般的培训机构的大数据入门课程,都是从编程语言开始教授的,但请你一定要认清一个问题,编程语言只是大数据课程的一小部分,如果整个大数据的课程一大部分都是编程语言的教授,你就要小心了,这真的不是真正的大数据课程。还有一些“戏精”机构以HTML5、Java、大数据可视化等擦边知识, 混淆真实大数据授课标准课程,蒙蔽学员,发现时才追悔莫及。我们总结以下假课,避免学员入坑。不靠谱的大数据培训课程总结如下:1、大数据偏HTML5课程偏重HTML5、css、HTMl、AJAX、jQuery、AngleJs、Js等内容讲解。2、大数据偏Java课程偏重Java、JavaWeb、Spring、SpringMVC、MyBatis、HTCargo项目实战。3、...
- 下一篇
一口气带你踩完五个 List 的大坑,真的是处处坑啊!
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! List 可谓是我们经常使用的集合类之一,几乎所有业务代码都离不开 List。既然天天在用,那就没准就会踩中这几个 List 常见坑。今天我们就来总结这些常见的坑在哪里,捞自己一手,防止后续同学再继续踩坑。本文设计知识点如下: ArrayList 这是李逵,还是李鬼?以前实习的时候,写过这样一段简单代码,通过 Arrays#asList 将数组转化为 List 集合。 这段代码表面看起来没有任何问题,编译也能通过,但是真正测试运行的时候将会在第 4 行抛出 UnsupportedOperationException。刚开始很不解,Arrays#asList 返回明明也是一个 ArrayList,为什么添加一个元素就会报错?这以后还能好好新增元素吗? 最后通过 Debug 才发现这个Arrays#asList 返回的 ArrayList 其实是个李鬼,仅仅只是 Arrays 一个内部类,并非真正的 java.util.ArrayList。 通过 IDEA,生成这两个的类图,如下: 从上图我...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7