Java ListIterator Robustness



我在Java中有一个简单的LinkedList,比如说,有10个元素。在那种状态下,我得到一个普通的ListIterator,比如 .listIterator(3(。如果我随后在列表中插入/删除其他元素,而不触及我拥有ListIterator(或迭代器(的元素,ListIterator是否仍然有效?

如果你在

ListIterator自己的方法之外修改一个java.util.LinkedList,那么迭代器就是掺假的,如果你尝试再次使用它,它会抛出ConcurrentModificationException

这在链表的javadoc中有所介绍:

此类的迭代

器和列表迭代器返回的迭代器 方法是快速失败的:如果列表在任何 创建迭代器后的时间,以任何方式,除了通过 迭代器自己的删除或添加方法,迭代器会抛出一个 ConcurrentModificationException.因此,面对并发 修改,迭代器快速而干净地失败,而不是 在不确定的时间冒着任意、非确定性行为的风险 在未来。