总结一下关于在Java8中使用stream流踩过的一些坑


Posted in Java/Android onJune 24, 2021

Java8的stream流

第一个坑:

Collectors.toAsList()其实是new了一个list,在向里面赋值。

总结一下关于在Java8中使用stream流踩过的一些坑

注意这里Collectors.toList()的写法,这里其实是底层new ArraryList().筛选的数据放到一个新的list。虽然标1处和标2处是同一个变量,但是内存地址是不一样啊。下面的逻辑时把hldrPolVOList中的某些元素删除。但是这个方法执行完后其实是没有删除里面元素的。原因就是这里的new ArraryList()更改了内存地址造成的。

测试:

总结一下关于在Java8中使用stream流踩过的一些坑

解决办法:

总结一下关于在Java8中使用stream流踩过的一些坑

第二个坑:

list.stream().foreach(p->{return;});这里的return是结束的foreach而不是外部方法

总结一下关于在Java8中使用stream流踩过的一些坑

解决办法:把stream改成for循环。

第三个坑:

并行流(parallelStream() )的foreach操作里,如果把一个ArrayList里的值copy到另外一ArrayList时,就有可能多或者少元素。原因并行流是多线程,而ArrayList是非线程安全的。

写在最后

关于java8的stream是非常好用的,主要写的代码更加简洁,不在写大量代码。但是也不是所有场景都适合用的,如果本来业务耗时比较长,然后有希望减少业务执行时间。在数据量不是很大的情况下,stream流是没有优势的,也就是说数据量小,且同意业务内多处使用stream处理数据,这时执行耗时比for循环更多,只有业务量达到百万级别才体现出优势。

到此这篇关于总结一下关于在Java8中使用stream流踩过的一些坑的文章就介绍到这了,更多相关Java8的stream流内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
Spring Boot 启动、停止、重启、状态脚本
Jun 26 Java/Android
Java实现二维数组和稀疏数组之间的转换
Jun 27 Java/Android
利用Java设置Word文本框中的文字旋转方向的实现方法
Jun 28 Java/Android
Java实现多文件上传功能
Jun 30 Java/Android
Java 语言中Object 类和System 类详解
Jul 07 Java/Android
JavaWeb 入门篇(3)ServletContext 详解 具体应用
Jul 16 Java/Android
Java比较两个对象中全部属性值是否相等的方法
Aug 07 Java/Android
java如何实现socket连接方法封装
Sep 25 Java/Android
Spring-cloud Config Server的3种配置方式
Sep 25 Java/Android
Spring Cloud 中@FeignClient注解中的contextId属性详解
Sep 25 Java/Android
SpringBoot中HttpSessionListener的简单使用方式
Mar 17 Java/Android
Spring中的@Transactional的工作原理
Jun 05 Java/Android
IDEA使用SpringAssistant插件创建SpringCloud项目
使用feign服务调用添加Header参数
详解Java实现数据结构之并查集
解决SpringCloud Feign传对象参数调用失败的问题
Jun 23 #Java/Android
详解Java实现设计模式之责任链模式
Jun 23 #Java/Android
Spring boot应用启动后首次访问很慢的解决方案
Java并发编程之详解CyclicBarrier线程同步
You might like
一个目录遍历函数
2006/10/09 PHP
php smarty 二级分类代码和模版循环例子
2011/06/01 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
php根据日期判断星座的函数分享
2014/02/13 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
Aster vs Newbee BO3 第三场2.18
2021/03/10 DOTA
一个对于js this关键字的问题
2007/01/09 Javascript
javascript编程起步(第三课)
2007/02/27 Javascript
javascript背投广告代码的完善
2008/04/08 Javascript
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
中专毕业个人的自荐信格式
2013/09/21 职场文书
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
护理专业本科生自荐信
2013/10/01 职场文书
新闻记者个人求职的自我评价
2013/11/28 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
化学教师自荐信范文
2013/12/28 职场文书
四风问题自查报告剖析材料
2014/02/08 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
社区敬老月活动总结
2015/05/07 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
2015年度电厂个人工作总结
2015/05/13 职场文书
百万英镑观后感
2015/06/09 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python