Java ListIterator 特性

  • ListIterator 从 Java 1.2 开始可用。
  • ListIterator 扩展了 Iterator 接口。
  • ListIterator 仅适用于 List 实现的类。
  • 与 Iterator 不同,ListIterator 支持对元素列表的所有 CRUD 操作(CREATE、READ、UPDATE 和 DELETE)。
  • 与 Iterator 不同, ListIterator 是双向的。它支持前向和后向迭代。
  • 它没有当前元素;它的光标位置始终位于调用 previous() 返回的元素和调用 next() 返回的元素之间。
欢迎 on it road

Java ListIterator 示例

迭代 ArrayList 的元素:

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");
// 前向迭代
while(listIterator.hasNext()) {
    System.out.print(listIterator.next() + ",");
}
System.out.println("Backward iteration");
// 后向迭代
while(listIterator.hasPrevious()) {
    System.out.print(listIterator.previous() + ",");
}
System.out.println("Iteration from specified position");

// 从索引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,
Java ListIterator

Java ListIterator 接口是双向迭代器,用于在上一个或者下一个方向上迭代列表的元素。

我们可以使用 list.listIterator() 方法调用获取对任何给定列表的列表迭代器的引用。
遵循给定的 ListIterator 语法。

ListIterator<T> listIterator = list.listIterator();

Java ListIterator 的方法

  • void add(Object o) :将指定元素插入列表(可选操作)。
  • boolean hasNext() :如果此列表迭代器在向前遍历列表时有更多元素,则返回 true
  • boolean hasPrevious() :如果此列表迭代器在反向遍历列表时有更多元素,则返回 true
  • Object next() :返回列表中的下一个元素并前进光标位置。
  • int nextIndex() :返回后续调用 next() 将返回的元素的索引。
  • Object previous() :返回列表中的前一个元素并将光标位置向后移动。
  • int previousIndex() :返回元素的索引,该元素的索引将由对 previous() 的后续调用返回。
  • void remove() :从列表中删除 next() 或者 previous() (可选操作)返回的最后一个元素。
  • void set(Object o) :将 next() 或者 previous() 返回的最后一个元素替换为指定的元素(可选操作)。
日期:2020-09-17 00:09:48 来源:oir作者:oir