list动态remove处理并发异常ConcurrentModificationException 问题
来源:互联网 发布:ubuntu kylin社区 编辑:程序博客网 时间:2024/06/06 01:58
List类型的数据进行remove操作时会报并发修改异常ConcurrentModificationException问题,这是由于集合遍历是使用Iterator, Iterator是工作在一个独立的线程中,并且拥有一个互斥锁。Iterator 被创建之后会建立一个指向原来对象的单链索引表,当原来的对象数量发生变化时,这个索引表的内容不会同步改变,所以当索引指针往后移动的时候就找不到要迭代的对象,所以按照 fail-fast原则 Iterator 会马上抛出java.util.ConcurrentModificationException 异常。所以 Iterator 在工作的时候是不允许被迭代的对象被改变的。
要解决这个问题有两种方式:
方式1:
将每次处理的list结果放在另外一个list中,再对结果list进行操作;
方式2:
Iterator<泛型> it = 要处理的list.iterator();
while(it.hasNext()){
it.remove();
}
阅读全文
0 0
- list动态remove处理并发异常ConcurrentModificationException 问题
- list中remove的问题,以及 ConcurrentModificationException异常
- java.util.ConcurrentModificationException 并发修改异常处理
- ConcurrentModificationException并发修改异常
- ConcurrentModificationException并发修改异常
- List remove时出错"ConcurrentModificationException"
- 从ConcurrentModificationException到 list remove
- 关于list的 java.util.ConcurrentModificationException异常处理
- Java并发修改异常ConcurrentModificationException
- 迭代器并发修改异常ConcurrentModificationException
- JAVA ConcurrentModificationException并发修改异常
- 关于list的ConcurrentModificationException 异常
- list set集合remove() ConcurrentModificationException 原因
- java.util.ConcurrentModificationException 集合remove异常
- java.util.ConcurrentModificationException异常处理
- java.util.ConcurrentModificationException 异常处理
- java.util.ConcurrentModificationException异常处理
- java.util.ConcurrentModificationException异常处理
- 强大的分页工具----layPage
- 简单博弈 之江学院 F qwb has a lot of Coins
- LintCode 161-旋转图像
- lubuntu14.04右下角没有网络管理的解决方法
- Hibernate中Criteria的完整用法
- list动态remove处理并发异常ConcurrentModificationException 问题
- UIWebView网页视图
- Linux I/O 调度
- fastjson 属性大写问题
- 面--经集合1
- 最简单的Android项目(NDK命令行编译)
- Java 反斜杠 斜杠 编译 转换
- ArrayList底层实现源码解读
- discuz取消登录密码连续错误限制