Java 迭代器速查手册
首页
›
Java手册
›
Java 迭代器
› 并发修改异常
Java
迭代器
:ConcurrentModification:💥 ⚠️ 并发修改异常
原因与解决。
图 7:Java 迭代器:ConcurrentModification(1080×1440 速查卡片)
💥 ⚠️ 并发修改异常
遍历过程中对集合做了结构性修改
(用集合的 add/remove,而不是迭代器的),
就会抛出这个异常。
🛠️三种解决办法
① 用迭代器自身的 remove()(最常用)
② 用 removeIf() 一行搞定
③ 多线程场景用并发容器(如 CopyOnWriteArrayList)
CmeDemo.java
// 反例:遍历时用集合删除 → 抛异常
for (Integer i : numbers) {
if (i < 10) numbers.remove(i); // 💥 异常
}
// 正例:用 removeIf 一行搞定
numbers.removeIf(i -> i < 10);
2. 总览
3. 获取迭代器
4. 三大方法
5. 遍历中删除
6. ListIterator
8. 三大方法
9. 获取迭代器
10. 并发修改异常
11. 总结
← 上一篇
ListIterator
下一篇 →
三大方法
Java Applet
Java 常用类库
Java 9 新特性
Java MySQL 连接
Java 8 新特性
Java 实例
Java 文档注释
Java 多线程
Java 发送邮件
Java 网络编程
Java 序列化
Java 泛型
Java NIO Files
Java Object 类
Java HashMap
Java HashSet
Java LinkedList
Java ArrayList
Java 集合框架
Java 数据结构
Java 封装
Java 接口
Java 枚举
Java 包
Java 反射
Java 抽象类
Java 多态
Java 重写与重载
Java 继承
Java 异常处理
Java StringBuffer
Java String
Java Character
Java Number & Math
Java 正则表达式
Java 日期时间
Java 数组
Java 方法
Java 流与文件IO
Java Scanner 类
Java 构造方法
Java 条件语句
Java 循环结构
Java switch case
Java 运算符
Java 修饰符
Java 变量命名规则
Java 变量类型
Java 基本数据类型
Java 对象和类
Java 注释
Java 基础语法