在上一个教程中,我们讨论了 Java 中的迭代器,我们可以使用它来向前遍历List或Set。在这里,我们将讨论ListIterator,它允许我们在两个方向(向前和向后)遍历列表。
ListIterator示例
在这个例子中,我们在两个方向上遍历ArrayList 。
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorExample {
public static void main(String a[]){
ListIterator<String> litr = null;
List<String> names = new ArrayList<String>();
names.add("Shyam");
names.add("Rajat");
names.add("Paul");
names.add("Tom");
names.add("Kate");
//Obtaining list iterator
litr=names.listIterator();
System.out.println("Traversing the list in forward direction:");
while(litr.hasNext()){
System.out.println(litr.next());
}
System.out.println("\nTraversing the list in backward direction:");
while(litr.hasPrevious()){
System.out.println(litr.previous());
}
}
}
输出:
Traversing the list in forward direction:
Shyam
Rajat
Paul
Tom
Kate
Traversing the list in backward direction:
Kate
Tom
Paul
Rajat
Shyam
注意:我们可以使用Iterator遍历List和Set两者但是使用ListIterator我们只能遍历List。Iterator和ListIterator之间还有其他一些差异,我们将在下一篇文章中讨论它们。
ListIterator 的方法
1)void add(E e):将指定的元素插入列表(可选操作)。
2)boolean hasNext():如果此列表迭代器在向前遍历列表时具有更多元素,则返回true。
3)boolean hasPrevious():如果此列表迭代器在反向遍历列表时具有更多元素,则返回true。
4)E next():返回列表中的下一个元素并前进光标位置。
5)int nextIndex():返回后续调用next()返回的元素的索引。
6)E previous():返回列表中的上一个元素并向后移动光标位置。
7)int previousIndex():返回后续调用previous()返回的元素的索引。
8)void remove():从列表中删除next()或previous()返回的最后一个元素(可选操作)。
9)void set(E e):用指定的元素(可选操作)替换next()或previous()返回的最后一个元素。
极客教程