调试集合时modcount变量是什么

Ada*_*Lee 9 java eclipse collections

使用Eclipse调试Java代码时,对于集合变量,我看到了modcount成员.这是什么意思?

mat*_*tts 33

Java的许多集合都会产生"失败快速"的迭代器,这意味着如果在创建迭代器之后更改了集合,迭代器将被无效并ConcurrentModificationException尽快抛出.(与之后失败或返回无效数据相比.)

为了支持此功能,集合必须跟踪它是否已被修改.每次更改集合时,它都会递增modcount.当集合生成迭代器时,迭代器会存储modcount创建时的值.然后,每当您尝试使用迭代器时,它会检查它的保存modcount是否与父集合的当前不同modcount; 如果是,迭代器失败了ConcurrentModificationException.

(此规则的一个例外是通过迭代器本身(如迭代器的remove方法)对集合的修改不会使迭代器失效.)