性能 之 【list遍历效率】
发布日期:2021-06-30 16:14:11
浏览次数:2
分类:技术文章
本文共 1573 字,大约阅读时间需要 5 分钟。
这里测试四种遍历方式:
最基础的size(),增强for循环,迭代和stream方式 ,测试5000万次遍历List<int> 结果如下:
注:测试了多个数量级,多次测试结果几乎和以下情况一致,跌倒和增强for循环的效率相差不多
可以看出,最基础的size()遍历,效率最高,其次增强for循环,然后是跌倒,最后是stream 。
测试代码
package performance;import cn.hutool.core.util.RandomUtil;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;/** * @author keepgoon * @Description: TODO * @date 2019/6/2511:29 */public class Listtest { private static void addItem(Listlist){ for (int i =0;i<5000 * 10000;i++){ list.add(RandomUtil.randomInt()); } } private static void forIndex(List list){ long start = new Date().getTime(); for(int i = 0;i list){ long start = new Date().getTime(); Iterator it = list.iterator(); while (it.hasNext()) { Integer str = (Integer) it.next(); } System.out.println("forIterator : " +(new Date().getTime()-start)+ " 毫秒"); } private static void forPower(List list){ long start = new Date().getTime(); for(int key : list){ key =key; } System.out.println("forPower : " +(new Date().getTime()-start)+ " 毫秒"); } private static void streamFor(List list){ long start = new Date().getTime(); list.stream().forEach(item->{}); System.out.println("Stream : " +(new Date().getTime()-start)+ " 毫秒"); } public static void main(String[] args) { List list = new ArrayList <>(); addItem(list); forIndex(list); forIterator(list); forPower(list); streamFor(list); }}
转载地址:https://keepgoon.blog.csdn.net/article/details/93617246 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月24日 21时32分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基础架构系列篇-系统centos7中docker安装分布式文件存储服务minio
2019-04-30
软件质量的8个特性
2019-04-30
应届渣渣前端的艰难求职之路
2019-04-30
2021年不可错过的17种JS优化技巧(一)
2019-04-30
月薪15~20k的前端面试问什么?
2019-04-30
在 Vue 中用 Axios 异步请求API
2019-04-30
MySQL进阶查询(SELECT 语句高级用法)
2019-04-30
Mysql 之主从复制
2019-04-30
【工具使用】新版CSDN-markdown编辑器使用指南
2019-04-30
【NLP学习笔记】中文分词(Word Segmentation,WS)
2019-04-30
【超越白皮书7】你需要知道关于ETH2.0的几个事实
2019-04-30
对于时间复杂度的通俗理解
2019-04-30
如何输入多组数据并输出每组数据的和?
2019-04-30
行阶梯型矩阵
2019-04-30
MATLAB指定路径保存图片方法
2019-04-30
JAVA学习笔记6 - 数组
2019-04-30
JAVA学习笔记10 - 继承
2019-04-30
Android 开发学习笔记 00 - Getting Started
2019-04-30
【学习笔记】Android Activity
2019-04-30
Android使用Retrofit_00_Getting Started
2019-04-30