Java ArrayList遍历的3种方法
1. Iterator方法遍历
for(Iterator it2 = list.iterator();it2.hasNext();){ System.out.println(it2.next()); }
2. for 第一种循环方式遍历
for(int i = 0;i < list.size(); i ++){ System.out.println(list.get(i)); }
3. for 第二种循环方式遍历
for(String tmp:list){ System.out.println(tmp); }
实例
public class ListTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); long start = 0L; long end = 0L; for(int j = 0; j < 1000000; j++) { list.add("aaaaaa" + j); } start = System.currentTimeMillis(); for(String tmp:list) { } end = System.currentTimeMillis(); System.out.print("第一种方法运行时间:" + (end - start) + "(毫秒)\n"); start = System.currentTimeMillis(); for(int i = 0; i < list.size(); i++) { list.get(i); } end = System.currentTimeMillis(); System.out.print("第二种方法运行时间:" + (end - start) + "(毫秒)\n"); Iterator<String> iter = list.iterator(); start = System.currentTimeMillis(); while(iter.hasNext()) { iter.next(); } end = System.currentTimeMillis(); System.out.print("第三种方法运行时间:" + (end - start) + "(毫秒)\n"); } }
执行的结果:
第一种方法运行时间:14(毫秒)
第二种方法运行时间:4(毫秒)
第三种方法运行时间:5(毫秒)
总结
1. 方式1,3看着比较简洁,但是性能较差,这种方式在循环的过程中,会进行数据锁定,性能较差。
2. 第二种方式,循环过程中数据不锁定,效率高,但是多线程的时候需要考虑并发操作的问题.
3. 第一种方式比第三钟方式还要多一些处理,所以时间更久。
因此推荐用第二种
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。