java.util.ConcurrentModificationException的原因及解决方案

平时我们在项目中,对List集合或者map进行迭代并进行增加或者删除操作时,就会出现java.util.ConcurrentModificationException 这个异常信息。下面我们就来讨论以下这个异常出现的原因以及解决办法。


实例

看上图,运行这段代码,就会抛出异常。

解决方案:

一 单线程:

在iterator类中有一个remove()方法,看下图


iterator.remove()

在这个方法中删除元素实际上调用的就是list.remove()方法,因此,在迭代器中如果要删除元素的话,需要调用Itr类的remove方法。

将上述代码改为下面这样就不会报错了:


正确代码

多线程的解决方案等我晚上回去再说

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util...
    零宽度接合阅读 3,456评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,212评论 18 399
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,431评论 0 3
  • 今天大致的翻了翻朋友的杂文集《一个人的激辩》,对他甚是佩服。书中收集了他的诗评,书评,影评及随笔,读来还是很有收货...
    运生阅读 1,342评论 0 0
  • 3.0试运行第一天,早起-运动/阅读,因为之前一直都有听书的习惯,所以感觉没啥影响,五点朝夕打卡后,打开喜马拉雅,...
    f743bc6fa3c3阅读 2,361评论 0 3

友情链接更多精彩内容