问题:

在Java中对集合使用增强for循环时,一旦对集合进行增删操作,在遍历时会引起java.util.ConcurrentModificationException: null异常。

原因:

在官方文档中ConcurrentModificationException的介绍如下:

public class ConcurrentModificationException extends RuntimeException

某个线程在 Collection 上进行遍历时,通常不允许其他线程修改该 Collection,这会导致遍历的结果是不确定的。当方法检测到集合发生并发修改时,不允许这种修改,抛出此异常。

在执行增删操作以后,集合的expectedModCount和modCount的值不一致,这两个变量的作用都是记录修改次数的,二者不相等,就会抛错。

expectedModCount:表示对ArrayList修改次数的期望值,它的初始值为modCount。

modCount是AbstractList类中的一个成员变量。

解决方法:

方法一:使用索引(普通for循环)遍历。
方法二:使用增强for循环遍历,增删操作使用迭代器实现。

-------------------------------------以下无正文-----------------------------------------------------------

注:仅供学习,记录问题和参考,共勉!

转载来源:https://blog.csdn.net/jl08133341/article/details/123128108

java.util.ConcurrentModificationException: null异常由for增强循环嵌套增删引起。相关推荐

  1. java.util.ConcurrentModificationException: null异常(已解决,原因出自于Java集合的快速失败机制)

    问题来源 今天我在写项目时,对集合中的元素做了以下操作 报错信息如图 问题来源: 在Java中对集合进行遍历时,一旦对集合进行增删操作,在遍历时会引起java.util.ConcurrentModif ...

  2. 出现 java.util.ConcurrentModificationException 时的解决办法

    for (int i=0; i<list.size(); i++) { // 只有在这种方式遍历集合时,同时对集合增加.删除才不会影响. // list.remove(list.get(i)); ...

  3. java.util.ConcurrentModificationException详解

    一.异常产生 当我们迭代一个ArrayList或者HashMap时,如果尝试对集合做一些修改操作(例如删除元素),可能会抛出java.util.ConcurrentModificationExcept ...

  4. 非线程安全类ArrayList出现异常:java.util.ConcurrentModificationException

    今天执行了一段<图解多线程设计模式>中的代码,结果抛出了如下的异常: Exception in thread "ReaderThread" java.util.Conc ...

  5. 为什么会出现 java.util.ConcurrentModificationException 异常?

    http://www.iteye.com/topic/124788 在Map或者Collection的时候,不要用它们的API直接修改集合的内容(否则会出现 java.util.ConcurrentM ...

  6. java.util.ConcurrentModificationException异常原因及解决方法

    java.util.ConcurrentModificationException异常原因及解决方法 参考文章: (1)java.util.ConcurrentModificationExceptio ...

  7. 异常:java.util.ConcurrentModificationException

    Quote: 异常:java.util.ConcurrentModificationException 在Map或者Collection的时候,不要用它们的API直接修改集合的内容,如果要修改可以用I ...

  8. java.util.ConcurrentModificationException异常

    2019独角兽企业重金招聘Python工程师标准>>> <p>    今天遇到了一个小bug,在对ArrayList操作时出现了java.util.ConcurrentM ...

  9. hashMap异常:java.util.ConcurrentModificationException

    hashMap异常:java.util.ConcurrentModificationException 参考文章: (1)hashMap异常:java.util.ConcurrentModificat ...

最新文章

  1. python使用numpy生成指定步长的浮点数序列
  2. 图像处理之霍夫变换(直线检測算法)
  3. CCS(Code Composer Studio) 10.2.0的下载和安装(最新教程)
  4. SAP ByD 期末结账步骤简化(不完整)方法
  5. 5行代码帮你梳理EOS.IO的脉络
  6. 关于stm32F4CAN总线调试
  7. 第一夜 主公说啥俺做啥
  8. python实用脚本 知乎_停课不停学|38 个免费 Python 项目合集,从小白到老司机!...
  9. php调用swf文件上传,swfupload-jquery-plugin AJAX+PHP 文件上传
  10. [转载] Java 中字符串转整型和整型转字符串
  11. ubuntu20输入法qiehuan_UBUNTU 20 输入法问题
  12. oracle无效的关系运算符_每日一课 | Java 8中的instanceof运算符和访客模式替换
  13. GNU C - Using GNU GCC __attribute__ mechanism 01 Function Attribute
  14. 使用VideoView实现简单视频播放器
  15. SoapUI5.1.2安装和破解教程
  16. multisim10中设置变压器匝数比的两种方法
  17. 信息管理系统技术开发合同书(补充协议)模板
  18. 微信公众号开发测试平台地址
  19. 使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群
  20. CorelDRAW X4精简版序列号大家为何对其情有独钟?x8

热门文章

  1. 1.1会计要素及其确认与计量
  2. SQL-DDL语句DQL语句
  3. 深入理解 Android 系统升级
  4. 刹车片做E-mark认证费用大概多少?
  5. linux禁止ping, 服务器防止ping拒绝服务网络攻击
  6. CAD制图软件中极轴追踪功能的使用技巧
  7. 053试题 329 - recover corruption list
  8. 互联网算命时代,花 3000 块能给微信头像开光
  9. gmail 邮箱找回方法
  10. Excel 多个数和为定数的随机数生成方式