zoukankan      html  css  js  c++  java
  • JAVA——遍历

    关于遍历,发现了个坑。 详见如下:

    package com.fxl.test;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class TestLoop {
        
        
        public static void main(String[] args) {
            List<String> list = new ArrayList();
            for(int i=0;i<10000*100;i++){
                list.add("test"+i);
            }
            test1(list);
            test2(list);
        }
        public static void test1(List<String> list){
            long start = System.currentTimeMillis();
            long num = 0l;
            for(String str : list){
                num += Long.parseLong(str.replace("test", ""));
            }
            System.out.println("result:"+num + "
     use Time:"+(System.currentTimeMillis()-start)/1000);
        }
        
        public static void test2(List<String> list){
            long start = System.currentTimeMillis();
            long num = 0l;
            /*for(Iterator<String> it=list.iterator(); it.hasNext();){
                num += Long.parseLong(it.next().replace("test", ""));
                it.remove();
            }*/
            Iterator<String> it = list.iterator();
            while (it.hasNext()) {
                String str = it.next();
                num += Long.parseLong(str.replace("test", ""));
                it.remove();
            }
            
            System.out.println("result:"+num + "
     use Time:"+(System.currentTimeMillis()-start)/1000);
        }
        
    }

    运行结果:

      

    看,是不是很6,按理来说,一边遍历一边删除会少遍历一些,速度会快一些,but。。。。。。

  • 相关阅读:
    (五)Redis在项目中应用
    股票收益最大问题
    (四)redigo
    (三)go-sql-driver
    为什么TCP要3次握手?4次挥手?
    分支预测
    事务隔离级别说明
    剑指offer解题思路锦集11-20题
    C++中的二义性问题
    memcached Vs redis
  • 原文地址:https://www.cnblogs.com/FancyLian/p/9929461.html
Copyright © 2011-2022 走看看