总结一下关于在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 mvc是如何实现与数据库的前后端的连接操作的?
Jun 30 Java/Android
Spring Cloud Gateway去掉url前缀
Jul 15 Java/Android
java固定大小队列的几种实现方式详解
Jul 15 Java/Android
使用springMVC所需要的pom配置
Sep 15 Java/Android
springboot 多数据源配置不生效遇到的坑及解决
Nov 17 Java/Android
Java 超详细讲解十大排序算法面试无忧
Apr 08 Java/Android
mybatis 获取更新记录的id
May 20 Java/Android
springcloud整合seata
May 20 Java/Android
Android开发手册自定义Switch开关按钮控件
Jun 10 Java/Android
详解Spring Security如何在权限中使用通配符
Jun 28 Java/Android
AndroidStudio图片压缩工具ImgCompressPlugin使用实例
Aug 05 Java/Android
Springboot集成kafka高级应用实战分享
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
消息持续发送的完整例子
2006/10/09 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
php PDO判断连接是否可用的实现方法
2017/04/03 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
php时间戳转换代码详解
2019/08/04 PHP
基于JQuery的日期联动实现代码
2011/02/24 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
解决js图片加载时出现404的问题
2020/11/30 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
在vue中使用echars实现上浮与下钻效果
2019/11/08 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python实现从订阅源下载图片的方法
2015/03/11 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python中下标和切片的使用方法解析
2019/08/27 Python
Supersmart英国:欧洲市场首批食品补充剂供应商之一
2018/05/05 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
GWT都有什么特性
2016/12/02 面试题
护士节活动总结
2014/08/29 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
营销与策划实训报告
2014/11/05 职场文书
催款通知书范文
2015/04/17 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python
详解Redis集群搭建的三种方式
2021/05/31 Redis