Java ListIterator
接口
原文: https://howtodoinjava.com/java/collections/java-listiterator/
Java ListIterator
接口是双向迭代器,用于在向前或向后的任一方向上对列表的元素进行迭代。
我们可以使用list.listIterator()
方法调用来获取任何给定列表的列表迭代器的引用。 遵循给定的ListIterator
语法。
ListIterator<T> listIterator = list.listIterator();
1. Java ListIterator
特性
以下是 Java 中ListIterator
提供的特性列表。
- 从 Java 1.2 开始,可以使用
ListIterator
。 ListIterator
扩展了Iterator
接口。ListIterator
仅适用于List
实现的类。- 与
Iterator
不同,ListIterator
支持在元素列表上的所有 CRUD 操作(创建,读取,更新和删除啊)。 - 与
Iterator
不同,ListIterator
是双向。 它支持正向和反向迭代。 - 它没有当前元素; 它的光标位置始终位于通过调用
previous()
返回的元素和通过调用next()
返回的元素之间。
2. Java ListIterator
示例
让我们从一个简单的ListIterator
Java 示例开始,遍历ArrayList
的元素。 请注意,数组索引以'0'
开头。
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
ListIterator<String> listIterator = list.listIterator();
System.out.println("Forward iteration");
//Forward iterator
while(listIterator.hasNext()) {
System.out.print(listIterator.next() + ",");
}
System.out.println("Backward iteration");
//Backward iterator
while(listIterator.hasPrevious()) {
System.out.print(listIterator.previous() + ",");
}
System.out.println("Iteration from specified position");
//Start iterating from index 2
listIterator = list.listIterator(2);
while(listIterator.hasNext()) {
System.out.print(listIterator.next() + ",");
}
程序输出。
Forward iteration
A,B,C,D,E,F,
Backward iteration
F,E,D,C,B,A,
Iteration from specified position
C,D,E,F,
3. Java ListIterator
方法
void add(Object o)
:将指定的元素插入列表(可选操作)。boolean hasNext()
:如果在向前遍历列表时此列表迭代器包含更多元素,则返回true
。boolean hasPrevious()
:如果在反向遍历列表时此列表迭代器包含更多元素,则返回true
。Object next()
:返回列表中的下一个元素并前进光标位置。int nextIndex()
:返回元素的索引,该元素的索引将由对next()
的后续调用返回。Object previous()
:返回列表中的上一个元素,并将光标位置向后移动。int previousIndex()
:返回元素的索引,该元素的索引将由对next()
的后续调用返回。void remove()
:从列表中移除next()
或previous()
返回的最后一个元素(可选操作)。void set(Object o)
:将next()
或previous()
返回的最后一个元素替换为指定的元素(可选操作)。
4。总结
在本教程中,我们学习了 Java ListIterator
接口。 我们学习了ListIterator
方法和简单示例,以向前和向后迭代列表元素。
将我的问题放在评论部分。
学习愉快!
参考文献: