从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进行遍历性能是最高的,求牛人解释?
最新内容请见作者的GitHub页:http://qaseven.github.io/

Java list三种遍历方法性能比较相关推荐

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

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

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

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

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

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

  4. ArrayList的三种遍历方法

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

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

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

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

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

  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. C#代码考究--foreach、for和dictionary三种遍历方式性能比较

    在日常开发过程中,我们会经常用到遍历,那么几种遍历方式有什么优缺点呢? 一.foreach: 本文foreach案例是对泛型List进行遍历操作 List<int> m_list = ne ...

最新文章

  1. POE POH等供电
  2. H极大值—lhMorpHMax
  3. 【转】 vi常用操作
  4. 软件缺陷的优先级和严重性定义
  5. 测试Spring Boot有条件的合理方式
  6. CALLING PROCEDURES USING CALL AND RET
  7. Kubernetes Resource QoS Classes介绍
  8. socket 网络编程高速入门(一)教你编写基于UDP/TCP的服务(client)通信
  9. Es6语法实现的转盘抽奖效果——可配置转盘的抽奖概率
  10. mysql 单精度和双经度_***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别)...
  11. 计算机专业网页设计周志,毕业论文(设计)周志范文.doc
  12. 我用新拟物化设计风格,做了一个App改版案例
  13. 第十四届蓝桥杯第一期模拟赛 python
  14. DXF文件的使用与PCB元件封装确认
  15. itss认证是什么意思
  16. ubuntu下各服务 重启命令
  17. 直流有刷电机调速原理及Matlab/Simulink仿真
  18. runtimeError: package fails to pass a sanity check解决方法
  19. 简单的医院挂号排队系统(c语言)
  20. 2009年研究生入学考试西医综合科目试题

热门文章

  1. 写着简单跑得又快的数据库语言 SPL
  2. 头条三面:toString()、String.valueOf、(String)强转,有啥区别?
  3. SQL 注入真是防不胜防!
  4. 起飞,会了这4个 Intellij IDEA 调试魔法,阅读源码都简单了
  5. 我在 Spring 的 BeanUtils 踩到的那些坑,千万不要犯!
  6. 机器学习竞赛必备基础知识_Word2Vec
  7. 这个GAN没见过猪,却能把狗变成猪
  8. 特斯拉到底颠覆了什么?
  9. 神经网络七十年:回顾与展望
  10. 一些改进模型速度/精度的工程方法