在 foreach 循环中对集合元素做 add/remove 操作会报错,这是为啥
触发了Java 集合的错误检测机制(fail-fast),元素变动时会检测 modCount 和 expectedModCount 值 modCount 是 ArrayList 中的一个成员变量。它表示该集合实际被修改的次数。 expectedModCount 是 ArrayList 中的一个内部类——Itr 中的成员变量。 expectedModCount 表示这个迭代器期望该集合被修改的次数。其值是在 ArrayList.iterator 方法被调用的时候初始化的。只有通过迭代器对集合进行操作,该值才会改变。 在 add/remove 时,并没有对 expectedModCount 做任何 操作,导致抛出 ConcurrentModificationException
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。