ListIterator 可双向遍历并修改列表,通过 list.listIterator() 获取实例,使用 next() 或 previous() 移动指针后,可调用 set() 修改、add() 添加、remove() 删除元素,注意操作顺序以避免异常。

在Java中,ListIterator 是一个比普通 Iterator 更强大的迭代器,它允许双向遍历列表(向前和向后),并且可以在遍历过程中安全地修改列表元素。如果你想在遍历时修改、添加或删除列表中的元素,ListIterator 是一个理想选择。
获取 ListIterator 实例
要使用 ListIterator,首先需要从支持它的集合类(如 ArrayList、LinkedList)中获取实例。通常通过调用 list 的 listIterator() 方法获得。
Listlist.add("A");
list.add("B");
list.add("C");
ListIterator
使用 set() 方法修改当前元素
ListIterator 提供了 set(E e) 方法,用于替换当前指向的元素。这个方法只能在调用 next() 或 previous() 之后使用,否则会抛出 IllegalStateException。
// 向前遍历并修改每个元素while (iterator.hasNext()) {
String current = iterator.next();
iterator.set(current + "_modified"); // 修改当前元素
}
// 此时 list 中的内容变为 ["A_modified", "B_modified", "C_modified"]
使用 add() 和 remove() 动态调整列表
除了修改,你还可以在遍历过程中添加或删除元素:
采用zblog修改的模板,简单方便,直接解压上传到空间即可使用,页面简单,适合SEO,导航,次导航,最新文章列表,随机文章列表全部都有,网站采用扁平结构,非常适用淘宝客类小站,所有文章都在根目录下。所有需要修改的地方在网页上各个地方都有标注说明,一切在网站后台都可以修改,无须修改任何程序代码,是新手的不二选择。后台登陆地址: 域名/login.asp用户名:admin (建议不要修改)密码:adm
立即学习“Java免费学习笔记(深入)”;
- add(E e):在当前指针位置前插入新元素
- remove():删除上一次 next() 或 previous() 返回的元素
ListIterator
while (it.hasNext()) {
it.next(); // 移动到下一个元素
it.add("inserted"); // 在其后插入
}
// 结果:["A_modified", "inserted", "B_modified", "inserted", "C_modified", "inserted"]
基本上就这些。只要注意操作顺序,避免在未调用 next/previous 时使用 set/remove,就能安全地用 ListIterator 修改列表。不复杂但容易忽略细节。









