閑來無事,研究一下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最慢。