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
廣告