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());
}
}
循环遍历集合
要循环遍历集合,请使用 hasNext()
和 next()
方法。 Iterator
从集合中删除项目
迭代器旨在轻松地更改它们循环遍历的集合。 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 循环** 删除项目将无法正常工作,因为集合的大小正在更改,同时代码正在尝试循环。