📅  最后修改于: 2023-12-03 15:01:33.448000             🧑  作者: Mango
Java 向后迭代器是 Java 中一种比较常用的数据结构,它允许程序员在一个容器中按照顺序逐个访问元素,并且可以删除迭代器中的元素而不影响容器本身的结构。Java 中提供了两种向后迭代器:Iterator
和 ListIterator
。
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
是 Iterator
的子类,它提供了比 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