原文: https://www.programiz.com/java-programming/iterator

在本教程中,我们将通过一个示例来学习 Java Iterator接口。

Java 集合框架的Iterator接口允许我们访问集合的元素。 它具有子接口ListIterator

Java `Iterator`接口 - 图1

所有 Java 集合均包含iterator()方法。 此方法返回用于迭代集合元素的迭代器实例。


迭代器的方法

Iterator接口提供了 4 种方法,可用于对集合元素执行各种操作。

  • hasNext() - 如果集合中存在一个元素,则返回true
  • next() - 返回集合的下一个元素
  • remove() - 删除next()返回的最后一个元素
  • forEachRemaining() - 对集合的每个剩余元素执行指定的操作

示例:迭代器的实现

在下面的示例中,我们在ArrayList中实现了Iterator接口的hasNext()next(), remove()forEachRemining()方法。

  1. import java.util.ArrayList;
  2. import java.util.Iterator;
  3. class Main {
  4. public static void main(String[] args) {
  5. // Creating an ArrayList
  6. ArrayList<Integer> numbers = new ArrayList<>();
  7. numbers.add(1);
  8. numbers.add(3);
  9. numbers.add(2);
  10. System.out.println("ArrayList: " + numbers);
  11. // Creating an instance of Iterator
  12. Iterator<Integer> iterate = numbers.iterator();
  13. // Using the next() method
  14. int number = iterate.next();
  15. System.out.println("Accessed Element: " + number);
  16. // Using the remove() method
  17. iterate.remove();
  18. System.out.println("Removed Element: " + number);
  19. System.out.print("Updated ArrayList: ");
  20. // Using the hasNext() method
  21. while(iterate.hasNext()) {
  22. // Using the forEachRemaining() method
  23. iterate.forEachRemaining((value) -> System.out.print(value + ", "));
  24. }
  25. }
  26. }

输出

  1. ArrayList: [1, 3, 2]
  2. Acessed Element: 1
  3. Removed Element: 1
  4. Updated ArrayList: 3, 2,

在上面的示例中,请注意以下语句:

  1. iterate.forEachRemaining((value) -> System.put.print(value + ", "));

在这里,我们已将 lambda 表达式作为forEachRemaining()方法的参数传递。

现在,该方法将打印ArrayList中的所有其余元素。