JDK8 Stream性能介绍
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要讲解了"JDK8 Stream性能介绍",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JDK8 Stream性能介绍"吧!一、场景在编写代码
千家信息网最后更新 2025年02月04日JDK8 Stream性能介绍
这篇文章主要讲解了"JDK8 Stream性能介绍",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"JDK8 Stream性能介绍"吧!
一、场景
在编写代码时,想用jdk8的stream替换以前的for循环,代码如下:
//for方法Setkeys = Sets.newHashSetWithExpectedSize(list.size());for (T data : list) { keys.add(getWrapRedisKey(data));}//stream方法Set keys = list.stream().map(this::getWrapRedisKey).collect(Collectors.toSet());
二、 问题
stream
可以非常优雅的一行代码就解决,而for
则需要三行代码,生产力大大提高。
但是for
循环可以实现初始化容量,这在频繁add
触发rehash
、链表转红黑树
时,能大大提高性能,那么stream
的api
的Collectors.toSet
方法有没有设置初始化容量。
查看源码:
三、测试
Talking is cheap,show me the code
简单写了一个测试代码
public static void main(String[] args) { int expectSize = 100000; Listsource = generateData(expectSize); long start = System.currentTimeMillis(); testFor(source); //testStream(source); System.out.println(System.currentTimeMillis() - start);}private static void testFor(List source) { Set sets = Sets.newHashSetWithExpectedSize(source.size()); for (String s : source) { sets.add(s); }}private static void testStream(List source) { source.stream().collect(Collectors.toSet());}private static List generateData(int size) { List list = Lists.newArrayListWithCapacity(size); for(int i = 1; i <= size; i++) { list.add(UUIDUtils.generateId()); } return list;}
结果是10w数据是,for比stream快2-3倍...
四、 结果
在数据量比较大,同时要求相应时间场景下,应该还是使用for或者在使用stream前预设集合容量。
感谢各位的阅读,以上就是"JDK8 Stream性能介绍"的内容了,经过本文的学习后,相信大家对JDK8 Stream性能介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
性能
代码
容量
方法
学习
内容
场景
数据
结果
问题
循环
测试
频繁
优雅
一行
同时
就是
思路
情况
文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库密码常用加密方式
国内有什么和服务器有关的工作
如何登录h2数据库
以网络安全为主题的诗歌朗诵
广州做软件开发
中介公司手机app软件开发
目前车载网络技术主要用于
app软件开发公司服务
陕西侠客行互联网科技
已服务器连接已中断
服务器中了勒索病毒赎金多少
北京市中搜互联网科技
山东app软件开发哪里好
网络安全包含4个方面的内容
数据库默认最大的设计区
第五空间网络安全大赛如何
贵州省网络安全日
国产汽车网络安全概念
网络安全等级保护管理制度
网络安全如何落实
昆明西湖棋牌平台软件开发
青岛东王子软件开发有限公
aspen实时数据库能改数据吗
log4j 插入数据库
ipv6代理服务器
网络安全看法学校
成都互联网科技公司排行
机车升级服务器
sci数据库引文网络
义乌市合杰软件开发有限公司