java操作集合中 concurrentModifyException 异常的原因分析

Posted codermark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java操作集合中 concurrentModifyException 异常的原因分析相关的知识,希望对你有一定的参考价值。

不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
正例

Iterator<String> iterator = list.iterator();
  while (iterator.hasNext()) {
  String item = iterator.next();
  if (删除元素的条件) {
  iterator.remove();
 }
}

反例

List<String> a = new ArrayList<String>();
  list.add("1");
  list.add("2");
  for (String item : list) {
    if ("1".equals(item)) {
      list.remove(item);
    }
  }

 

subList 也一样

技术分享图片

 



以上是关于java操作集合中 concurrentModifyException 异常的原因分析的主要内容,如果未能解决你的问题,请参考以下文章

Java 快速失败( fail-fast ) 安全失败( fail-safe )

(转)Java ConcurrentModificationException异常原因和解决方法

JavaArrayList集合操作?

java 遍历集合的时候对集合进行操作

Java集合之List常见操作

JAVA 集合操作总结