Java 迭代器
Java 迭代器
Iterator
是一種可用於遍歷集合(如 ArrayList 和 HashSet)的物件。它被稱為“迭代器”是因為“迭代”是迴圈的技術術語。
要使用迭代器,您必須從 java.util
包中匯入它。
獲取迭代器
iterator()
方法可用於獲取任何集合的 Iterator
。
示例
// Import the ArrayList class and the Iterator class
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
// Make a collection
ArrayList<String> cars = new ArrayList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
// Get the iterator
Iterator<String> it = cars.iterator();
// Print the first item
System.out.println(it.next());
}
}
遍歷集合
要遍歷集合,請使用 Iterator
的 hasNext()
和 next()
方法。
從集合中刪除專案
迭代器旨在輕鬆更改它們遍歷的集合。 remove()
方法可以在迴圈時從集合中刪除專案。
示例
使用迭代器從集合中刪除小於 10 的數字
import java.util.ArrayList;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<Integer>();
numbers.add(12);
numbers.add(8);
numbers.add(2);
numbers.add(23);
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if(i < 10) {
it.remove();
}
}
System.out.println(numbers);
}
}
注意:嘗試使用 for 迴圈或 for-each 迴圈刪除專案將無法正常工作,因為集合在程式碼嘗試迴圈的同時正在改變大小。