List的三种遍历方式比较

List的forEach、size、iterator三种遍历方式比较

代码

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class TestList {
    
    public static void main(String[] args) {
        compare();
    }

    public static void compare() {
        List<String> list = new ArrayList<String>();
        Set<String> set = new HashSet<String>();
        for(int i=0;i<10000000;i++) {
            list.add("a"+i);
        }
        long t1=0L,t2=0L;
        
        //forEach遍历
        t1 = System.currentTimeMillis();
        for(String s : list) {
            set.add(s);
        }
        t2 = System.currentTimeMillis();
        System.out.println("forEach遍历的时间为:"+(t2-t1)+"mm");
        
        //size遍历
        t1 = System.currentTimeMillis();
        for(int i=0; i<list.size(); i++) {
            String str = list.get(i);
            set.add(list.get(i));
        }
        t2 = System.currentTimeMillis();
        System.out.println("size遍历的时间为:"+(t2-t1)+"mm");
        
        //iterator遍历
        t1 = System.currentTimeMillis();
        Iterator<String> iterator = list.iterator();
        while(iterator.hasNext()) {
            String str = iterator.next();
            set.add((String)iterator.next());
        }
        t2 = System.currentTimeMillis();
        System.out.println("iterator遍历的时间为:"+(t2-t1)+"mm");
        
    }
}

遍历结果

①当list的大小为100000

 

 

 

②当list的大小为1000000

 

 

 

③当list的大小为10000000

 

 

 

总结

通过比对,forEach、size、iterator的耗时 forEach>size>iterator

 

posted @ 2020-12-31 17:37  IT民工郑小江  阅读(500)  评论(0编辑  收藏  举报