for和foreach的效率对比分析
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,本篇文章为大家展示了for和foreach的效率对比分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 //for循环 public static
千家信息网最后更新 2025年12月04日for和foreach的效率对比分析
本篇文章为大家展示了for和foreach的效率对比分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
//for循环 public static void main(String[] args) { String[] strs = {"3333", "2222", "1111"}; List list = Arrays.asList(strs); list = new ArrayList<>(list); for (int i = 0; i < list.size(); i++){ String str = list.get(i); if (i == 2){ list.remove(str); continue; } System.out.println(str); } } //foreach循环 public static void main(String[] args) { String[] strs = {"3333", "2222", "1111"}; List list = Arrays.asList(strs); list = new ArrayList<>(list); for (String str: list){ if (str.equals("1111")){ //异常抛出点 list.remove(str); continue; } System.out.println(str); } } 先从原理上进行分析,for循环没啥好说的,主要是foreach,foreach的源码如下:
//使用迭代器的next方法遍历 for (Iterator localIterator = list.iterator(); localIterator.hasNext(); ) { //do something... }由于foreach是使用的迭代器的方式遍历的,所以在对最后一个数据元素进行remove操作时,会抛出异常。
for循环运行:

foreach循环运行:
两者的效率差:
采用ArrayList对随机访问比较快,而for循环中的get()方法,采用的即是随机访问的方法,因此在ArrayList里,for循环较快。
采用LinkedList则是顺序访问比较快,iterator中的next()方法,采用的即是顺序访问的方法,因此在LinkedList里,使用iterator较快。
代码:
//for循环与foreach效率对比 public static void main(String[] args) { //LinkedList运行 List list = new LinkedList<>(); //ArrayList运行// List list = new ArrayList<>(); for (int i = 0; i < 100000; i++){ list.add(i); } long startTime=System.currentTimeMillis(); //获取开始时间 for (int i = 0; i < list.size(); i++){ //不输出数据,程序运行时间太短 System.out.println(list.get(i)); } long endTime=System.currentTimeMillis(); //获取结束时间 long fortime = endTime - startTime; startTime=System.currentTimeMillis(); //获取开始时间 for (int i : list){ //不输出数据,程序运行时间太短 System.out.println(i); } endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("for运行时间: "+fortime+"ms"); System.out.println("foreach运行时间: "+(endTime - startTime)+"ms"); } LinkedList运行结果:
ArrayList运行结果:

上述内容就是for和foreach的效率对比分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
运行
时间
循环
方法
效率
分析
数据
内容
技能
知识
程序
结果
顺序
输出
迭代
好说
简明
简明扼要
代码
元素
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
杭州侣程网络技术有
网络安全工作师是什么
方舟进服务器为什么卡
知乎计算机网络技术开始学什么
金铲铲之战老是服务器异常
软件开发论文下载
湛江考试软件开发定制
供电公司网络安全行为十禁
c 封装数据库操作类
华美网络安全知识
苏宁软件开发工作人员
数据库与应用程序之间存在什么
福建数据网络技术创新服务
大创数据库
上海金融软件开发公司排名
服务器没开放
未来之役ios登录哪个服务器
建飞网络安全吗
视屏监控网络安全管理制度
怎么运营好一个服务器我的世界
学习数据库的收获
iis服务器安全证书
mysql数据库异构
帆软如何连接达梦数据库
辽宁放心软件开发服务以客为尊
网络安全教育黑板水彩画
松下A5服务器图纸
杭州软件开发刘双
中华名人数据库吴国臣
网络技术远程培训班