天天看點

java中的Iterator與增強for循環的效率比較

  最近在優化代碼時遇到了這個問題:Iterator與增強for循環到底哪個效率高?之前在學習的時候,好像記着老師說過周遊集合(如list)時,使用iterator好像正規一些,因為是專用的,但是運作效率問題确實不曾考慮,今天做了一個實驗:對兩者進行了簡單的比較,得出的結論是:增強for循環運作效率更高一些。但是我不确定這是否會代表全部情況,這裡僅僅記錄一下,做個參考,後期有新的認識再來補充,歡迎大家批評指正。

1   public static void main(String[] args) {
 2         test();
 3     }
 4     
 5     public static void test() {
 6         
 7         List<Integer> list = new ArrayList<Integer>();
 8         int flag = 100000;
 9         int i=0;
10         while(i<flag) {
11             list.add(i);
12             i++;
13         }
14         
15         // iterator測試
16         long start = System.currentTimeMillis();
17             Iterator<Integer> iterator = list.iterator();
18             while(iterator.hasNext()) {
19                 System.out.print(iterator.next());
20             }
21         long end = System.currentTimeMillis();
22         System.out.println("iterator本次執行耗費了"+(end-start)+"毫秒");
23         
24         // 增強for循環測試
25         long start2 = System.currentTimeMillis();
26             for(Integer inte : list) {
27                 System.out.print(inte);
28             }
29         long end2 = System.currentTimeMillis();
30         System.out.println("for本次執行耗費了"+(end2-start2)+"毫秒");
31     }      

  運作結果為:

java中的Iterator與增強for循環的效率比較

繼續閱讀