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
作者:IT民工郑小江
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。