Java 迭代器

Java 迭代器

迭代器(Iterator)是一种对象,可用于循环遍历集合,比如 ArrayListHashSet

被称为"迭代器",是因为"迭代"是循环的技术术语。

要使用迭代器,您必须从 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());
 }
}

亲自试一试

循环遍历集合

如需循环遍历集合,请使用 IteratorhasNext()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 循环删除项目将无法正常工作,因为在代码尝试循环的同时,集合正在更改大小。

(追記) (追記ここまで)

AltStyle によって変換されたページ (->オリジナル) /