Java 迭代器

创建于 2024-12-02 / 27
字体: [默认] [大] [更大]

Java 迭代器

Iterator 是一个可用于循环遍历集合的对象,例如 ArrayListHashSet。 它被称为"迭代器",因为"迭代"是循环的技术术语。

要使用迭代器,您必须从 java.util 包中导入它。


获取迭代器

iterator() 方法可用于获取任何集合的迭代器:

实例

// 导入 ArrayList 类和 Iterator 类
import java.util.ArrayList;
import java.util.Iterator;

public class MyClass {
  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");

    // 获取迭代器
    Iterator<String> it = cars.iterator();

    // 打印第一项
    System.out.println(it.next());
  }
}

运行实例 »


循环遍历集合

要遍历集合,请使用迭代器的 hasNext()next() 方法:

实例

while(it.hasNext()) {
  System.out.println(it.next());
}

运行实例 »


从集合中删除项目

迭代器旨在轻松更改它们循环的集合。remove() 方法可以在循环时从集合中删除项目。

实例

使用迭代器从集合中删除小于 10 的数字:

import java.util.ArrayList;
import java.util.Iterator;

public class MyClass {
  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 循环删除项目将无法正常工作,因为集合在代码尝试循环的同时改变大小。



0 人点赞过