java - 调试集合时modcount变量有什么用

标签 java eclipse collections

<分区>

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

最佳答案

许多 Java 的集合产生“快速失败”的迭代器,这意味着如果在创建迭代器后更改集合,迭代器将失效并立即抛出 ConcurrentModificationException它可以。 (与稍后失败或返回无效数据相比。)

为了支持此功能,集合必须跟踪它是否已被修改。每次更改集合时,它都会增加 modcount。当集合产生一个迭代器时,迭代器存储 modcount 的值从它被创建时开始。然后,每当您尝试使用迭代器时,它都会检查其保存的 modcount 是否与父集合的当前 modcount 不同;如果是,迭代器将失败并返回 ConcurrentModificationException

(此规则的一个异常(exception)是通过迭代器本身对集合所做的修改(如迭代器的 remove 方法)不会使迭代器失效。)

关于java - 调试集合时modcount变量有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11042552/

相关文章:

java - 使用 Eclipse 进行处理 : close sketch without closing the rest of the windows?

java - eclipse插件开发: how to open a custom editor from a cnf (on double click).

java - 将 long 数组转换为 ArrayList<Long>

c# - 使用 LINQ 将数据从一个列表复制到另一个列表

java - 解析 JSON 并将它们保存在 SQLite 数据库中

java - JLabel不会在类里面显示图像

java - Spring MVC中如何集成多种 View 技术

eclipse - m2e - 无法解析 'pom' 的依赖类型

c# - 更新数据库集合的最佳策略

java - Spring Boot 。如何将数组转为json