总结一下关于在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 相关文章推荐
手把手教你用SpringBoot将文件打包成zip存放或导出
Jun 11 Java/Android
SpringBoot读取Resource下文件的4种方法
Jul 02 Java/Android
SpringRetry重试框架的具体使用
Jul 25 Java/Android
SpringCloud Feign请求头删除修改的操作代码
Mar 20 Java/Android
Java 超详细讲解hashCode方法
Apr 07 Java/Android
详细介绍Java中的CyclicBarrier
Apr 13 Java/Android
mybatis-plus模糊查询指定字段
Apr 28 Java/Android
带你了解Java中的ForkJoin
Apr 28 Java/Android
Java线程的6种状态与生命周期
May 11 Java/Android
Spring Boot项目如何优雅实现Excel导入与导出功能
Jun 10 Java/Android
SpringBoot使用AOP实现统计全局接口访问次数详解
Jun 16 Java/Android
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
Aug 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
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
PHP利用二叉堆实现TopK-算法的方法详解
2017/04/24 PHP
PHP实现百度人脸识别
2019/05/06 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
Extjs中常用表单介绍与应用
2010/06/07 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
javascript中的数字与字符串相加实例分析
2011/08/14 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
AngularJS ng-repeat数组有重复值的解决方法
2016/10/23 Javascript
基于Vue2的移动端开发环境搭建详解
2016/11/03 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
python 快速排序代码
2009/11/23 Python
python实现对求解最长回文子串的动态规划算法
2018/06/02 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
pandas 空数据处理方法详解
2019/11/02 Python
wxPython实现分隔窗口
2019/11/19 Python
django框架F&Q 聚合与分组操作示例
2019/12/12 Python
Python中base64与xml取值结合问题
2019/12/22 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
virtualenv介绍及简明教程
2020/06/23 Python
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
会计学个人自荐信模板
2013/12/13 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
局火灾防控工作方案
2014/05/25 职场文书
500字小学生检讨书
2015/02/19 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书