list遍历方式效率分析
发布日期:2021-09-18 10:05:47 浏览次数:4 分类:技术文章

本文共 1855 字,大约阅读时间需要 6 分钟。

package list;import java.util.ArrayList;import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class ListTest {
public static void main(String[] args) { List list=new ArrayList<>(); //List list=new LinkedList<>(); long begin,end; Object temp; begin=System.currentTimeMillis(); for (int i = 0; i < 10000000; i++) { list.add("第"+i+"个元素"); } end=System.currentTimeMillis(); System.out.println("创建list耗时:"+(end-begin)+"ms"); System.out.println("---------------------"); /** * foreach 方式 */ begin=System.currentTimeMillis(); for (Object object : list) { temp=object; } end=System.currentTimeMillis(); System.out.println("foreach耗时:"+(end-begin)+"ms"); System.out.println("---------------------"); /** * 迭代器方式 */ begin=System.currentTimeMillis(); Iterator iterator=list.iterator(); while (iterator.hasNext()) { temp=iterator.next(); } end=System.currentTimeMillis(); System.out.println("iterator耗时:"+(end-begin)+"ms"); System.out.println("---------------------"); /** * 普通for循环 */ begin=System.currentTimeMillis(); for (int i = 0; i

添加10000000条测试数据,测试结果:

第一次运行:创建list耗时:12767ms---------------------foreach耗时:30ms---------------------iterator耗时:27ms---------------------for耗时:7ms---------------------第二次运行:创建list耗时:7959ms---------------------foreach耗时:28ms---------------------iterator耗时:26ms---------------------for耗时:7ms---------------------

多次运行后,结果差别不大,foreach和iterator效率差不多,普通for循环效率最高。编译过程中,编译器将foreach循环体作为迭代器处理,二者完全等价,不过在foreach循环中,有一步不必要的赋值,导致效率比迭代器差一点,而for循环中,通过随机访问遍历列表,arraylist是基于数组实现的,所以随机访问的速度非常快,因此效率也非常高。所以遍历arraylist时,优先考虑for循环。

转载地址:https://blog.csdn.net/z694644032/article/details/68948775 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SpringCloud(一)服务注册与发现【Finchley版】
下一篇:Java中4大基本加密算法解析

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月28日 15时59分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

测试方法(1) 2019-04-26
python3-django 2019-04-26
功能测试(1) 2019-04-26
安全性测试(1) 2019-04-26
html基础 2019-04-26
vi—终端中的编辑器 2019-04-26
Linux 2019-04-26
jmeter-性能测试基础 2019-04-26
unittest 2019-04-26
错误推断法-维护中 2019-04-26
AJAX教程 2019-04-26
git基础 2019-04-26
git基础-01 2019-04-26
mysql-总结 2019-04-26
IPv4地址 2019-04-26
正则表达式 2019-04-26
redis 2019-04-26
术语-维护中 2019-04-26
software 2019-04-26
idea-ide 2019-04-26