在上一个教程中,我们讨论了 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()
返回的最后一个元素。