当我们在当前节点之后添加一些对象或在当前节点之后移除一些对象时,如何Iterator
抛出ConcurrentModificationException
。是否Iterator
维护基础集合的副本或参考?
迭代器维护对基础集合的引用。如果添加或删除元素,则迭代器可能会留在不可能的索引处,或者集合可能会从“迭代器下方”更改。
因此,大多数集合不是在不通知您的情况下就破坏了迭代器,而是在尝试在迭代时修改集合时提供了ConcurrentModificationException的礼貌,因此您不会陷入意想不到的损坏的迭代器中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句