迭代器可能的报错:ConcurrentModificationException(并发修改异常)注意事项

news/2024/9/21 11:01:30/文章来源:https://www.cnblogs.com/yoyoq/p/18423708

参考:
ConcurrentModificationException(并发修改异常)可能原因和解决方法
Java迭代器详解,看这一篇就够了
JAVA iterator迭代器遍历一遍后不能再遍历了吗 迭代器循环list

集合的顶层接口Collection继承Iterable接口,实现迭代器iterator()

迭代器一旦定义,不允许其他地方对其定义的集合元素,进行增加或者删除,比如:

本线程不行,其他线程当然也不行:

具体机制是:
ArrayList底层中定义了一个成员变量modCount,记录集合被修改的次数,集合每调用一次增加或删除元素的函数,modCount加1.当通过调用集合上的 iterator() 函数来创建迭代器时,会把modCount 值传递给迭代器的expectedModcount成员变量,之后每次调用集合上的hasNext()、next()、currentItem() 函数都会检查集合上modCount 和 expectedModcount 是否相等,两个值不相等,说明进行了增删,即抛出运行时异常结束程序。

增加和删除不行,修改可以:

拓展:
增强for循环可以代替Iterator迭代器,可以把它看做简化版的Iterator,和迭代器本质一样,其实它的底层实现就是Iterator迭代器,只能用于遍历集合或数组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/800897.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTA 周初浪型

考虑黄圈的时机做多一下:

iis服务器帝国cms7.5编辑器不能使用解决办法

在IIS服务器上使用帝国CMS 7.5时,如果编辑器不能正常使用,可能涉及多个方面的问题,包括文件权限、配置文件、依赖库等。下面是一些具体的解决办法: 1. 检查文件和目录权限 确保帝国CMS的所有必要文件和目录具有正确的权限。 步骤:检查e/data目录及其子目录:使用IIS Manag…

帝国cms开启https后,网站后台为何无法访问?怎样解决

当帝国CMS开启HTTPS后,网站后台无法访问的情况通常是由于HTTPS配置不当导致的一些常见问题。这里有一些可能的原因及解决方法: 1. .htaccess文件配置问题 帝国CMS使用Apache服务器时,通常会有一个.htaccess文件用来处理重定向和其他URL重写规则。开启HTTPS后,如果.htaccess…

帝国cms后台不能登录的解决方法_帝国cms

当遇到帝国CMS后台不能登录的问题时,可能的原因有很多,包括但不限于权限问题、Cookie设置问题、服务器配置问题等。以下是一些排查和解决此类问题的方法: 1. 检查文件和目录权限确保目录可写:e/data/adminlogin目录需要具有写权限,以便帝国CMS能够存储登录信息。可以通过F…

帝国cms后台不能登录的解决方法

帝国CMS后台不能登录的问题可能由多种因素引起,包括权限问题、Cookie设置问题、服务器配置问题等。下面是一些具体的解决方法: 1. 检查文件和目录权限确保目录可写:e/data/adminlogin目录需要具有写权限,以便帝国CMS能够存储登录信息。使用FTP客户端或服务器命令行设置权限…

帝国cms更新报错解决办法

帝国CMS在更新过程中可能会遇到各种错误,例如数据库更新失败、文件权限问题、PHP版本不兼容等。下面是一些常见的解决办法: 1. 文件权限问题检查目录权限:确保所有必要的目录都有正确的读写权限。特别注意e/data目录及其子目录。 使用FTP客户端或服务器命令行设置权限:bash…

帝国cms恢复数据失败怎么办

当遇到帝国CMS恢复数据失败的情况时,可能的原因有很多,包括但不限于数据库损坏、备份文件损坏、权限问题、编码不匹配等。以下是一些排查和解决此类问题的步骤: 1. 检查错误信息查看具体的错误信息:通常在恢复数据时,如果失败会有具体的错误信息提示,这些信息可以帮助定位…

帝国CMS7.5版安装包里的常见问题内容

帝国CMS 7.5版安装包中通常包含了一些常见问题及其解决方案。以下是一些常见的问题及其解决办法: 常见问题及解决办法 1. 安装过程中出现权限问题 问题描述:在安装过程中,某些文件或目录的权限不足,导致安装失败。 解决办法:检查文件权限:确保所有文件和目录的权限正确。…

排查帝国CMS定时刷新任务失效问题,快速解决!

当帝国CMS的定时刷新任务失效时,可以通过以下几个方面来进行排查和解决: 1. 检查计划任务设置访问计划任务页面:登录帝国CMS后台管理系统,进入“系统”->“计划任务”页面。 确认任务设置:确保定时刷新任务已经正确设置,包括触发时间、执行频率等参数。2. 校验服务器时…

帝国CMS提示Table empirecms._enewspubtemp_2 doesnt exis...

帝国CMS模板不匹配问题的解决办法 当你遇到帝国CMS中缺少某个模板表(如enewspubtemp_2)的情况时,通常是因为数据库和配置文件不匹配。以下是一些详细的解决方法: 解决方法一:忽略错误 如果你只是偶尔看到这个错误提示,并且不影响实际使用,可以选择忽略它。直接输入后台地…

帝国cms添加文章后文章url不对出现路径重复

当在帝国CMS中添加文章后发现URL不对或出现路径重复的问题,这通常与系统设置、URL重写规则、以及数据库中的某些配置有关。以下是一些可能的解决方法: 1. 检查系统设置访问系统设置:进入帝国CMS后台,找到系统设置选项。 检查URL模式:确保URL模式设置正确,例如静态化模式或…

帝国CMS提示Table ‘XX.***_enewspubtemp_2’ doesn’t exist错误提示解决方法

解决生成内容页提示“Table ‘*.phome_ecms_’ doesn’t exist……update ***ecms set havehtml=1 where id=” limit 1”的方法 当你在生成内容页时遇到上述报错时,可以通过以下步骤来解决: 最简单的办法:先备份数据库,然后执行下面2个SQL语句备份数据库在执行任何操作之前…