ConcurrentModificationException异常出现的原因
2024-10-16 23:00:04
原因:对list 、map 等迭代的时进行修改就会抛出java.util.ConcurrentModificationException异常
比如:
public synchronized void setSegmentStatus(NewNet seg, String msg) {
if(segstatusmap.containsKey(msg)){
segstatusmap.get(msg).add(seg);
}else{
List<NewNet> newNets = new ArrayList<NewNet>();
newNets.add(seg);
segstatusmap.put(msg, newNets);
}
//更新网段当前执行状态,去除重复newnet
if(msg.equals("正在检查")){ for(NewNet n:segstatusmap.get("未开始")){
if(seg.equals(n)){
segstatusmap.get("未开始").remove(n);
}
}
for(NewNet n:segstatusmap.get("未开始")){
if(seg.equals(n)){
segstatusmap.get("未开始").remove(n);
}
}
}else if(msg.equals("已完成")){
for(NewNet n:segstatusmap.get("未开始")){
if(seg.equals(n)){
segstatusmap.get("未开始").remove(n);
}
}
for(NewNet n:segstatusmap.get("正在检查")){
if(seg.equals(n)){
segstatusmap.get("正在检查").remove(n);
}
}
}
这段代码中 对 map :segstatusmap 遍历进行了remove操作, 报错如题。
解决方法:
用Iterator 的remove()
最新文章
- BPM生产安全管理解决方案分享
- BFS
- 多个相同name的文本输入框,输入其中一个后,使剩下的不能输入值
- moment 和ko 绑定msdate格式的日期值(静态text)
- 获取Spring-boot系统环境变量方法
- 创建featureclass,为它赋别名,并移动到数据集下
- Chrome 建立SOCKS5代理
- bootstrap table 行号 显示行号 添加行号 bootstrap-table 行号
- Ubuntu mysql中文乱码解决
- 概率图论PGM的D-Separation(D分离)
- Java SE 8 流库
- 深入浅出Java分布式系统通信
- iOS积分抽奖Demo,可以人为控制不同奖项的得奖率
- Markdown语法及编辑器
- python中urllib的整理
- shell实现每天0点备份mysql数据库
- p1654 OSU!
- JSP内置对象——application对象
- 有关maven不能加载ojdbc14.jar解决方法
- 为什么会出现__pycache__文件夹?