JAVA集合遍历的几种方法效率比较:

Java中对于集合的遍历,我们常见4中遍历方式:
1.普通for循环;
2.foreach循环;
3.iterator循环:
4.while循环“

测试方法:用for循环给一个list添加500万个数字。然后用以上4种方法,计算每种使用的时间。 代码如下:

  List<Integer> list=new ArrayList<Integer>();
        for(int i=0;i<5000000;i++){//500万
            list.add(i);
        }
        //第一种:for循环
        long currTime = System.currentTimeMillis();//开始分析前的系统时间
        for(int i=0;i<list.size();i++) {
            list.get(i);
        }
        long t1 = System.currentTimeMillis();//开始分析前的系统时间
        //第二种:foreach循环
        for(Integer i:list) {
            list.get(i);
        }
        long t2 = System.currentTimeMillis();
        //第三种:迭代器
        Iterator iter=list.iterator();
        while(iter.hasNext()){
            iter.next();
        }
        long t3 = System.currentTimeMillis();
        //第四种:while循环
        int i=0;
        int size=list.size();
        while(i<size){
            list.get(i++);
        }
        long t4 = System.currentTimeMillis();
        System.out.println("普通for循环时间:"+(t1-currTime));
        System.out.println("foreach时间:"+(t2-t1));
        System.out.println("迭代器时间:"+(t3-t2));
        System.out.println("while循环时间:"+(t4-t3));

启动main方法:控制台输出:
在这里插入图片描述
可以看出来,效率最高的是普通和while循环,最差的foreach。
我们启动第二遍结果:
在这里插入图片描述
启动第三遍结果:
在这里插入图片描述
把list的内容添加到5000万级别再测试一遍:
在这里插入图片描述
可以总结结论:循环种while的效率最高,其次是普通FOR循环,然后是迭代器,用foreach在效率上确实是有好几倍的差距,怪不得阿里巴巴的开发手册,不建议员工使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值