闲来无事,研究一下Java Collection,首先是ArrayList。
通过三种方式遍历了长度为100000的ArrayList。
import java.util.*; public class CollectionTest { public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); for (int i = 0 ; i < 100000 ; i++) { list.add(i); } // 第一种遍历list的方式 System.out.println("-------------foreach--------------------"); long t1 = System.currentTimeMillis(); for(int str: list) { System.out.println(str); } long t2 = System.currentTimeMillis(); // 第二种遍历list的方式 System.out.println("-------------------toArray-----------------"); Integer[] array = new Integer[list.size()]; list.toArray(array); long t3 = System.currentTimeMillis(); for (int i = 0; i < array.length; i++) { System.out.println(array[i]); } long t4 = System.currentTimeMillis(); // 第三种遍历list的方式 System.out.println("--------------Iterator-----------------"); Iterator<Integer> it = list.iterator(); long t5 = System.currentTimeMillis(); while (it.hasNext()) { System.out.println(it.next()); } long t6 = System.currentTimeMillis(); long t12 = t2 - t1; long t34 = t4 - t3; long t56 = t6 - t5; System.out.println(t12); System.out.println(t34); System.out.println(t56); } }
运行的结果为1104,978,658
可以发现,使用Iterator最快,toArray次之,forEach最慢。