首页 > 其他分享 >不能在foreach 循环中添加或删除元素

不能在foreach 循环中添加或删除元素

时间:2023-06-06 21:35:24浏览次数:41  
标签:遍历 迭代 删除 modCount 添加 foreach expectedModCount

迭代器在遍历map的时候,会先拿到modCount存起来然后遍历,在遍历的时候会判断当前modCount的值与我第一次进来存的值是否一样,不一样就报错

如果在循环中添加或删除元素,是直接调用集合的add,remove方法【导致了modCount增加或减少】,但这些方法不会修改迭代实例中的expectedModCount,导致在迭代实例中expectedModCount 与 modCount的值不相等,抛出ConcurrentModificationException异常

标签:遍历,迭代,删除,modCount,添加,foreach,expectedModCount
From: https://www.cnblogs.com/lly-rainbow/p/17461764.html

相关文章

  • mysql 删除 主从信息
    原来配置的是主主同步,后经调整后配置成主从同步,需要清楚主配置上的同步信息, 进入mysqlmysql>slavestop;mysql>resetslave;mysql>changemastertomaster_user='',master_host='',master_password='';结果报错如下:ERROR1210(HY000):IncorrectargumentstoMASTER_HOS......
  • mysql数据库自动删除app用户数据库脚本
    该脚本为数据库自动删除脚本,db_list.tex为存放想要删除的数据库列表,需手动配置要好该列表。该脚本对mysql数据库本身重要数据库自动判断保护。#!/bin/bash#2012-12-25bycocoforiin`cat./db_list.txt`doif["$i"=="mysql"]||["$i"=="information_schema"]||[......
  • 583. 两个字符串的删除操作
    给定两个单词word1和word2,返回使得word1和word2相同所需的最小步数。每步可以删除任意一个字符串中的一个字符。示例1:输入:word1="sea",word2="eat"输出:2解释:第一步将"sea"变为"ea",第二步将"eat"变为"ea">动态规划classSolution{p......
  • KingbaseES大数据量分区表添加主键与索引
    KingbaseES大数据量分区表添加主键与索引一、环境信息:系统信息:$cat/etc/centos-releaseCentOSLinuxrelease8.2.2004(Core)$lscpuArchitecture:x86_64CPUop-mode(s):32-bit,64-bitByteOrder:LittleEndianCPU(s):1On-......
  • android应用启动的时候添加图片,并设置跳过按钮
    要在显示图片时添加跳过按钮,可以使用AndroidSDK提供的splashscreen资源文件,并在布局文件中使用。以下是添加跳过按钮的一般步骤:1.在AndroidManifest.xml文件中的应用程序标签中添加以下行:android:splashScreen="res/drawable/splash_screen.png"这将指定使用spla......
  • 应用问题解决-分布式锁(LUA保证删除原子性)
    问题:删除操作缺乏原子性场景1、index1获得锁、执行具体操作、比较lock的uuid值确实和自己生成的uuid是否相等,相等则删除锁。uuid=v1set(lock,uuid)uuid.equals(get("lock"))2、但是index1执行删除前,lock刚好过期时间已经到了,被redis自动释放3、此时index2获取锁,执行具体......
  • idea添加maven模块
    pom.xml右键AddasMavenProject......
  • Windows之Visual Studio Code添加右键菜单
    背景通常如果直接从官网下载VisualStudioCode安装包,我们只需要在安装界面勾选那两个复选框就行了,它会安装后帮我们自动添加右键支持,但是,如果我们使用全新的Winget手段安装,因为是静默的,所以没有机会做这个勾选,那么我们只能手动给VisualStudioCode添加右键菜单支持了,让我们通过......
  • linux 的删除
    1,删除命令行rm-rf文件夹名称2,下载wget网址--------------------查找ES进程号ps-ef|grepelastickill-93250 3,安装yum1.首先检测是否安装build-essential包sudoapt-getinstallbuild-essential2.安装yumsudoapt-getinstallyum---------------------------------......
  • Linux添加防火墙、iptables的安装和配置
    由于centos7默认是使用firewall作为防火墙,下面介绍如何将系统的防火墙设置为iptables。#停止firewallsystemctlstopfirewall.service#禁止firewall开机启动systemctldisablefirewall.service#安装iptablesyuminstalliptables-services #编辑防火墙文件(建议都在配置......