从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,測试代码例如以下:

package com.hisense.tiger.list;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class ListTest {public static void main(String[] args){List<String> list = new ArrayList<String>();long t1,t2;for(int j = 0; j < 10000000; j++){list.add("aaaaaa" + j);}System.out.println("List first visit method:");t1=System.currentTimeMillis();for(String tmp:list){//System.out.println(tmp);}t2=System.currentTimeMillis();System.out.println("Run Time:" + (t2 -t1) + "(ms)");System.out.println("List second visit method:");t1=System.currentTimeMillis();for(int i = 0; i < list.size(); i++){list.get(i);//System.out.println(list.get(i));}t2=System.currentTimeMillis();System.out.println("Run Time:" + (t2 -t1) + "(ms)");System.out.println("List Third visit method:");Iterator<String> iter = list.iterator();t1=System.currentTimeMillis();while(iter.hasNext()){iter.next();//System.out.println(iter.next());}t2=System.currentTimeMillis();System.out.println("Run Time:" + (t2 -t1) + "(ms)");System.out.println("Finished!!!!!!!!");}
}

測试结果例如以下:

List first visit method:
Run Time:170(ms)
List second visit method:
Run Time:10(ms)
List Third visit method:
Run Time:34(ms)
Finished!!!!!!!!

測试的结论非常奇怪,第一种方法是java语言支持的新语法,代码最简洁,可是在三种方法中,性能确是最差的,取size进行遍历性能是最高的,求牛人解释?

java list三种遍历方法性能比較相关推荐

  1. java 遍历list 性能_java list三种遍历方法性能比較

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便測试各种遍历方法的性能,測试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  2. Java list三种遍历方法性能比较

    从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...

  3. java map集合遍历方法,Java的Map集合的三种遍历方法

    集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ 1. package com.myTest.MapText; import java.util.Collection; i ...

  4. JAVA vector的遍历_谈谈vector容器的三种遍历方法

    说明:本文仅供学习交流.转载请标明出处.欢迎转载! vector容器是最简单的顺序容器,其用法相似于数组.实际上vector的底层实现就是採用动态数组.在编敲代码的过程中.经常会变量容器中的元素,那么 ...

  5. ArrayList的三种遍历方法

    ArrayList的三种遍历方法 import java.util.*; public class Test{ public static void main(String[] args) { Lis ...

  6. for-forEach-stream.forEach三种遍历方法

    java8新出的循环方式,在网上有大量的道友说用流的方式效率反而更低了. 大量的结论表明,这种方式只是语法糖(for-forEach-stream三种遍历方法执行效率比较与选用思考 - ZZY1078 ...

  7. java的List三种遍历方法汇总

    java的List遍历方法有三种,分别为iterator迭代器,增强for循环,普通for循环,分别如下: package com.zhang.List;import java.util.ArrayL ...

  8. for-forEach-stream三种遍历方法执行效率比较与选用思考

    文章目录 想法 设计 实现 结论 建议 想法   在JDK-8中,新添加了很多的方法,比如说现在我所说的forEach,该方法是用于集合遍历的,其方式相当于传统的for循环遍历方式,只是与其不同之处就 ...

  9. python列表的三种遍历方法(for循环,索引,下标)

    列表是python中使用频率非常高的数据类型 用方括号[]定义 接下来介绍遍历列表常用的三种方法 1:直接遍历 list1=[1,24,34,44,533,5,219] for item in lis ...

最新文章

  1. Windows 系统下设置Nodejs NPM全局路径
  2. Android 网络请求HttpURLConnection 和 HttpClient详解
  3. 在linux下玩转usb摄像头
  4. 处理字符串_6_拆分字符串里的字符和数
  5. 4,postman和newman的联合使用
  6. hdu1068 Girls and Boys --- 最大独立集
  7. C#和其它C语言的区别
  8. php教程目录,php基础入门篇-文件和目录操作_PHP教程
  9. 计算机网络之网络层:4、ARP协议
  10. 云盘运用了计算机技术,360云盘咋找出来
  11. IDEA→编码设置、JDK设置、快捷方式、运行项目、debug、关联git、关联maven、mybatis跳转plugin
  12. sqlserver自动备份脚本
  13. java反射基础_Java反射基础 - havie的笔记 - 记笔记 - 私塾在线 - 只做精品视频课程服务...
  14. docker 定时重启脚本_群晖docker容器定时自动重启
  15. 教育技术资源大全(05-11-28)
  16. 2021校招offer薪资如何?(包含当今互联网各巨厂、大厂、中厂)
  17. Map和String互相转换
  18. GoDaddy3月份域名注册量达到3千多万 色情功不可没
  19. 哈尔滨工业大学计算机考研难吗,哈尔滨工业大学(专业学位)计算机技术考研难吗...
  20. 西北大学发布猴脸识别论文,公开 10 种动物面部数据集

热门文章

  1. Windows 7 的系统优化方案
  2. bash: ifconfig: command not found
  3. 解决Linux动态库版本兼容问题
  4. mysql远程连接数据库很慢
  5. TestLink学习七:TestLink测试用例Excel转换XML工具
  6. TTIC Postdoc Position
  7. Tip#66:你知道吗?如何在输入属性值时自动插入双引号
  8. Update of SharePoint Me
  9. ES6 箭头函数易出错细节
  10. 源码阅读心得11-13