纯净、安全、绿色的下载网站

首页|软件分类|下载排行|最新软件|IT学院

当前位置:首页IT学院IT技术

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

一路奔跑1314   2021-06-24 我要评论
想了解总结一下关于在Java8中使用stream流踩过的一些坑的相关内容吗一路奔跑1314在本文为您仔细讲解Java8的stream流的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Java8的stream流,Java,stream的使用下面大家一起来学习吧

Java8的stream流

第一个坑:

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

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

测试:

解决办法:

第二个坑:

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

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

第三个坑:

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

写在最后

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


相关文章

猜您喜欢

  • docker harbor docker5 全功能harbor仓库搭建过程

    想了解docker5 全功能harbor仓库搭建过程的相关内容吗Awesome Wang在本文为您仔细讲解docker harbor的相关知识和一些Code实例欢迎阅读和指正我们先划重点:docker,harbor,docker,harbor仓库下面大家一起来学习吧..
  • Feign调用异常处理 Feign调用全局异常处理解决方案

    想了解Feign调用全局异常处理解决方案的相关内容吗筱进GG在本文为您仔细讲解Feign调用异常处理的相关知识和一些Code实例欢迎阅读和指正我们先划重点:Feign调用,异常处理,全局异常处理下面大家一起来学习吧..

网友评论

Copyright 2020 www.gamerfx.net 【游戏天空】 版权所有 软件发布

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 点此查看联系方式