<分区>
在使用Eclipse 调试Java 代码时,对于集合变量,我看到了modcount
成员。什么意思?
<分区>
在使用Eclipse 调试Java 代码时,对于集合变量,我看到了modcount
成员。什么意思?
最佳答案
许多 Java 的集合产生“快速失败”的迭代器,这意味着如果在创建迭代器后更改集合,迭代器将失效并立即抛出 ConcurrentModificationException
它可以。 (与稍后失败或返回无效数据相比。)
为了支持此功能,集合必须跟踪它是否已被修改。每次更改集合时,它都会增加 modcount
。当集合产生一个迭代器时,迭代器存储 modcount
的值从它被创建时开始。然后,每当您尝试使用迭代器时,它都会检查其保存的 modcount
是否与父集合的当前 modcount
不同;如果是,迭代器将失败并返回 ConcurrentModificationException
。
(此规则的一个异常(exception)是通过迭代器本身对集合所做的修改(如迭代器的 remove
方法)不会使迭代器失效。)
关于java - 调试集合时modcount变量有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042552/