modCount的在地图和列表(ModCount in map and list)

2019-09-20 22:19发布

在调试中eclispse收藏我只是检查有一个名为modCount的,例如,如果我们调试名单,而在调试一下这个modCount的代表...检查,我们将看到的东西!请指教

Answer 1:

请参阅的javadoc

次此名单已结构上修改的次数结构上修改是指更改列表的大小,或者以其他方式干扰它以这样的方式,在正在进行的迭代产生不正确的结果。

此字段由iterator和listIterator方法返回的迭代器和列表迭代器实现使用。 如果该字段的值意外更改,迭代器(或列表迭代器)将响应抛出ConcurrentModificationException到下一个,删除以前,设置或添加操作。 这提供了快速失败行为,而不是并发修改的面迭代过程中不确定性的行为。

由子类使用此字段是可选的。 如果子类希望提供快速失败迭代器(和列表迭代器),那么它仅仅需要增加这一领域中它的add(INT,E)和remove(int)的方法(和它覆盖在结构这一结果的任何其他方法修改列表)。 一个调用ADD(INT,E)或删除(INT)必须不超过一到这个领域,或迭代器(和列表迭代器)将抛出虚假ConcurrentModificationExceptions。 如果实现不希望提供快速失败迭代器,这个领域可能会被忽略。



Answer 2:

这是使用迭代集合时,检测修改集合计数器:迭代器是快速失败,并抛出一个异常,如果集合了迭代过程中被修改。 modCount用于跟踪的修改。

仅供参考,标准类的来源是JDK的一部分,你可以阅读他们了解标准类是如何工作的。



文章来源: ModCount in map and list