📜  java 向后迭代器 - Java (1)

📅  最后修改于: 2023-12-03 15:01:33.448000             🧑  作者: Mango

Java 向后迭代器

Java 向后迭代器是 Java 中一种比较常用的数据结构,它允许程序员在一个容器中按照顺序逐个访问元素,并且可以删除迭代器中的元素而不影响容器本身的结构。Java 中提供了两种向后迭代器:IteratorListIterator

Iterator

Iterator 是 Java 中最普遍的向后迭代器,它允许程序员在集合中逐个访问元素,并在必要时删除元素。Iterator 只能向后遍历,也就是说只能访问当前元素之后的元素,不能访问当前元素之前的元素。Iterator 的主要方法包括:

  • hasNext():返回 boolean 值,表示是否还有下一个元素可以访问。
  • next():返回当前元素,并将迭代器的游标向后移动一位。
  • remove():删除当前元素。

以下是 Iterator 的代码片段:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String str = iterator.next();
    System.out.println(str);
    if (str.equals("Java")) {
        iterator.remove();
    }
}

上面的代码片段将输出以下内容:

Java
Python
C++
ListIterator

ListIteratorIterator 的子类,它提供了比 Iterator 更为强大的功能。与 Iterator 不同的是,ListIterator 可以向前和向后遍历,即可以访问当前元素之前和之后的元素。ListIterator 的主要方法包括:

  • hasNext():同 Iterator
  • next():同 Iterator
  • hasPrevious():返回 boolean 值,表示是否还有上一个元素可以访问。
  • previous():返回当前元素之前的元素,并将迭代器的游标向前移动一位。
  • add():在当前位置添加新的元素。
  • remove():同 Iterator
  • set():替换当前元素。

以下是 ListIterator 的代码片段:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
ListIterator<String> iterator = list.listIterator();
while (iterator.hasNext()) {
    String str = iterator.next();
    System.out.println(str);
    if (str.equals("Java")) {
        iterator.remove();
        iterator.add("JavaScript");
    }
}
while (iterator.hasPrevious()) {
    String str = iterator.previous();
    System.out.println(str);
}

上面的代码片段将输出以下内容:

Java
JavaScript
Python
C++
C++
Python
JavaScript