总结一下关于在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 相关文章推荐
Java并发编程之Executor接口的使用
Jun 21 Java/Android
利用Java设置Word文本框中的文字旋转方向的实现方法
Jun 28 Java/Android
SpringBoot读取Resource下文件的4种方法
Jul 02 Java/Android
Spring Security中用JWT退出登录时遇到的坑
Oct 16 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
Spring事务管理下synchronized锁失效问题的解决方法
Mar 31 Java/Android
Android Flutter实现3D动画效果示例详解
Apr 07 Java/Android
Java对文件的读写操作方法
Apr 29 Java/Android
java开发双人五子棋游戏
May 06 Java/Android
Android开发手册Chip监听及ChipGroup监听
Jun 10 Java/Android
springboot为异步任务规划自定义线程池的实现
Jun 14 Java/Android
Spring boot实现上传文件到本地服务器
Aug 14 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
PHP写UltraEdit插件脚本实现方法
2011/12/26 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
分享我对JS插件开发的一些感想和心得
2016/02/04 Javascript
深入浅析JavaScript中的Function类型
2016/07/09 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
2020/07/17 Javascript
python图片验证码生成代码
2016/07/02 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
pycharm安装图文教程
2017/05/02 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
光盘行动倡议书
2014/02/02 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
开学典礼演讲稿
2014/05/23 职场文书
工作自我评价范文
2015/03/05 职场文书
电话营销开场白
2015/05/29 职场文书
创业计划书详解
2019/07/19 职场文书