总结一下关于在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 相关文章推荐
新手入门Jvm-- JVM对象创建与内存分配机制
Jun 18 Java/Android
图解排序算法之希尔排序Java实现
Jun 26 Java/Android
springboot拦截器无法注入redisTemplate的解决方法
Jun 27 Java/Android
分析并发编程之LongAdder原理
Jun 29 Java/Android
Java并发编程必备之Future机制
Jun 30 Java/Android
Lombok的详细使用及优缺点总结
Jul 15 Java/Android
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
Jul 16 Java/Android
SpringBoot整合minio快速入门教程(代码示例)
Apr 03 Java/Android
Java 获取Word中所有的插入和删除修订的方法
Apr 06 Java/Android
Spring Boot 实现 WebSocket
Apr 30 Java/Android
Spring中的@Transactional的工作原理
Jun 05 Java/Android
Mybatis 一级缓存和二级缓存原理区别
Sep 23 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实现的生成静态HTML速度快类库
2007/03/31 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
Zend Framework教程之Resource Autoloading用法实例
2016/03/08 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
2019/01/21 Javascript
vue的for循环使用方法
2019/02/12 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
Javascript实现秒表计时游戏
2020/05/27 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
美国隐形眼镜网上商店:Lens.com
2019/09/03 全球购物
乌克兰品牌化妆品和香水在线商店:Bomond
2020/01/14 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
大型晚会策划方案
2014/02/06 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
2016新年年会主持词
2015/07/06 职场文书
小学体育课教学反思
2016/02/16 职场文书
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers