Java 迭代器
Java 迭代器
迭代器(Iterator
)是一种对象,可用于循环遍历集合,比如 ArrayList 和 HashSet。
被称为“迭代器”,是因为“迭代”是循环的技术术语。
要使用迭代器,您必须从 java.util
包中导入它。
获取迭代器
iterator()
方法可用于获取任何集合的 Iterator
:
实例
// 导入 ArrayList 类和 Iterator 类: import java.util.ArrayList; import java.util.Iterator; public class Main { public static void main(String[] args) { // 生成集合: ArrayList<String> cars = new ArrayList<String>(); cars.add("Volvo"); cars.add("BMW"); cars.add("Ford"); cars.add("Mazda"); // 获取迭代器: Iterator<String> it = cars.iterator(); // 打印首个项目: System.out.println(it.next()); } }
循环遍历集合
如需循环遍历集合,请使用 Iterator
的 hasNext()
和 next()
方法:
实例
while(it.hasNext()) { System.out.println(it.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 循环删除项目将无法正常工作,因为在代码尝试循环的同时,集合正在更改大小。