Java 中的 Iterator 與 forEach


可以使用兩種方法輕鬆地迭代集合。

  • 使用 for-Each 迴圈− 使用 foreach 迴圈並使用物件訪問陣列。

  • 使用迭代器− 使用 foreach 迴圈並使用物件訪問陣列。

差異

  • ConcurrentModificationException − 使用 for-Each 迴圈,如果修改了一個物件,則可能會發生 ConcurrentModificationException。使用迭代器,可以消除此問題。

  • 檢查大小 − 使用 for-Each,不需要檢查大小。使用迭代器如果未正確使用 hasNext(),則可能會發生 NoSuchElementException。

  • 效能 − 兩種情況下的效能都類似。

以下是使用上述方法的一個示例。

示例

 即時演示

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

public class Tester {

   public static void main(String[] args) {
      List<Integer> list = new ArrayList<>();
      list.add(1);list.add(2);list.add(3);
      list.add(4);list.add(5);list.add(6);

      System.out.println("List: ");
      //Way 1:
      for (int i : list) {
         System.out.print(i + " ");
      }

      Iterator<Integer> listIterator = list.iterator();
      System.out.println("
List: ");       while(listIterator.hasNext()){          System.out.print(listIterator.next() + " ");       }    } }

輸出

List:
1 2 3 4 5 6
List:
1 2 3 4 5 6

更新於:2020-06-23

2K+ 檢視

啟動你的職業

完成該課程,獲得認證

開始吧
廣告