Java ListIterator如何实现List集合双向遍历及元素替换技巧?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1165个文字,预计阅读时间需要5分钟。
因为Iterator只支持单向移动(从头到尾),且调用remove()后不能再调用next()或previous();而ListIterator允许双向移动、在任意位置插入/替换/删除,且所有修改都直接作用于原List,不会抛出ConcurrentModificationException(只要不混用外部方法如list.remove())。
常见错误现象:java.util.ConcurrentModificationException —— 多数是用了 for-each 或普通 Iterator 遍历时调用了 list.set(i, x) 或 list.remove(i)。
本文共计1165个文字,预计阅读时间需要5分钟。
因为Iterator只支持单向移动(从头到尾),且调用remove()后不能再调用next()或previous();而ListIterator允许双向移动、在任意位置插入/替换/删除,且所有修改都直接作用于原List,不会抛出ConcurrentModificationException(只要不混用外部方法如list.remove())。
常见错误现象:java.util.ConcurrentModificationException —— 多数是用了 for-each 或普通 Iterator 遍历时调用了 list.set(i, x) 或 list.remove(i)。

