ListIterator是Java中专用于List的双向迭代器,支持前后遍历及遍历时安全增删改元素。通过list.listIterator()获取实例,可指定起始索引。使用hasNext()、next()正向遍历,hasPrevious()、previous()反向遍历,需先移动到末尾再反向。提供add(E e)在当前指针前插入,set(E e)替换上一次访问的元素,remove()删除上一次访问的元素。注意:调用set或remove前必须先调用next或previous,否则抛IllegalStateException;add无此限制。适用于需双向操作或边遍历边修改的场景。

ListIterator 是 Java 中用于遍历和修改列表的双向迭代器,相比普通的 Iterator,它支持前后两个方向遍历,并且可以在遍历过程中安全地添加、修改或删除元素。它是 List 接口特有的工具,不能用于 Set 或其他集合类型。
要使用 ListIterator,必须从实现了 List 接口的集合(如 ArrayList、LinkedList)中获取。通过调用 list 的 listIterator() 方法即可获得实例。
import java.util.*;
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
ListIterator<String> iterator = list.listIterator();
也可以指定起始位置:ListIterator<string> iterator = list.listIterator(1);</string> 从索引 1 开始遍历。
ListIterator 支持从前往后和从后往前遍历。
hasNext() 和 next():判断是否存在下一个元素,并返回它,同时指针后移。hasPrevious() 和 previous():判断是否存在前一个元素,并返回它,同时指针前移。
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println("正向: " + element);
}
// 先正向走完
while (iterator.hasNext()) {
iterator.next();
}
// 再反向输出
while (iterator.hasPrevious()) {
String element = iterator.previous();
System.out.println("反向: " + element);
}
ListIterator 允许在不抛出 ConcurrentModificationException 的情况下对列表进行增删改操作。
立即学习“Java免费学习笔记(深入)”;
add(E e):在当前指针位置前插入元素。set(E e):替换最后一次调用 next() 或 previous() 返回的元素。remove():删除最后一次调用 next() 或 previous() 返回的元素。
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3));
ListIterator<Integer> it = numbers.listIterator();
while (it.hasNext()) {
Integer value = it.next();
if (value == 2) {
it.set(20); // 修改为 20
}
if (value == 3) {
it.add(4); // 在 3 后插入 4
}
}
System.out.println(numbers); // 输出: [1, 20, 3, 4]
使用 ListIterator 时需要注意以下几点:
set() 或 remove() 前必须先调用 next() 或 previous(),否则会抛出 IllegalStateException。add() 不受此限制,可在任意位置插入。next() 或 previous() 后,set() 和 remove() 都作用于该次返回的元素。基本上就这些。ListIterator 提供了比普通迭代器更灵活的操作能力,特别适合需要双向访问或边遍历边修改的场景。只要注意调用顺序和指针状态,就能安全高效地使用。
以上就是Java里如何使用ListIterator遍历和修改列表_ListIterator操作解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号