在上一个教程中,我们讨论了 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:ShyamRajatPaulTomKateTraversing the list in backward direction:KateTomPaulRajatShyam
注意:我们可以使用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()返回的最后一个元素。
