Java 之 集合中的 modCount的作用「建议收藏」

Java 之 集合中的 modCount的作用「建议收藏」modCount:记录当前集合被修改的次数在所有的集合实现类中(Collection与Map中),都会有一个 modCount 的变量出现,它的作用就是记录当前集合被修改的次数。下面以ArrayList 类进行说明:添加方法:删除方法:可以看出,两个操作都会影响元素的个数。 当我们使用迭代器或 foreach 遍历时,如果你在 foreach 遍历时,自动调用迭代器的迭代方法,此时在遍历过程中调用了集合的add,remove方法时,modCount就会改变,而迭代器记录的modCount

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

modCount:记录当前集合被修改的次数
在所有的集合实现类中(Collection与Map中),都会有一个 modCount 的变量出现,它的作用就是记录当前集合被修改的次数。

下面以ArrayList 类进行说明:

添加方法:

在这里插入图片描述

在这里插入图片描述

删除方法:

在这里插入图片描述

可以看出,两个操作都会影响元素的个数。 

当我们使用迭代器或 foreach 遍历时,如果你在 foreach 遍历时,自动调用迭代器的迭代方法,此时在遍历过程中调用了集合的add,remove方法时,modCount就会改变,而迭代器记录的modCount是开始迭代之前的,如果两个不一致,就会报异常,说明有两个线路(线程)同时操作集合。这种操作有风险,为了保证结果的正确性, 避免这样的情况发生,一旦发现modCount与expectedModCount不一致,立即报错。

此类的 iterator 和 listIterator 方法返回的迭代器是快速失败的:在创建迭代器之后,除非通过迭代器自身的 remove 或 add 方法从结构上对列表进行修改, 否则在任何时间以任何方式对列表进行修改, 迭代器都会抛出 ConcurrentModificationException。 因此,面对并发的修改,迭代器很快就会完全失败, 而不是冒着在将来某个不确定时间发生任意不确定行为的风险。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/169151.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 使用腾讯云直播开发直播功能违法吗_腾讯云直播插件

    使用腾讯云直播开发直播功能违法吗_腾讯云直播插件前言:最近公司开发app直播功能,我是后端,使用java开发,经过考虑选择使用腾讯的云直播功能,主要是考虑到腾讯在这方面可以说是很有实力的了。然后就是选择产品的问题,腾讯提供了几种直播的解决方案,最完整的是互动直播,这是一套比较完善的直播解决方案,但是费用比较贵,所以。。。我们选择了云直播和云通信(IM)组合,主要是因为本来app中就集成云通信,也就是云直播用来做视频交互,云通信用来做弹幕和直…

  • jmeter正则表达式提取器的用法和正则「建议收藏」

    jmeter正则表达式提取器的用法和正则「建议收藏」我们再使用jmeter请求接口时,碰到一些业务流程性的接口改怎么办,比如,我一个发布内容的接口需要用到登录接口返回的token加到请求上去才能发布内容,那在jmeter上该是如何实现的咧?这里介绍的是jmeter的正则表达式提取器1,把正则表达式添加到需要提取返回内容的http请求里,添加步骤是,,右键http请求–添加–后置处理器–正则表达式处理器2,在正则表达式提取器配置设置页里,1)要检查的响应字段:相当于是要提取哪个位置的内容数据……

  • 一文搞懂│http 和 https 的通信过程及区别

    一文搞懂│http 和 https 的通信过程及区别拨云见日,带你学好网络安全通信基础

  • 【转载】Http协议与TCP协议简单理解

    【转载】Http协议与TCP协议简单理解

    2021年11月18日
  • springboot框架简介优点_springboot框架的优点

    springboot框架简介优点_springboot框架的优点1.1.什么是SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework同属于spring的产品:我们可以看到下面的一段介绍:Takesanopinionatedviewofbuildingproduction-readySpringapplications.SpringBootfavorsconventionoverconfigurationandisdesignedtogetyouupa

  • golang学习资料[Basic]

    golang学习资料[Basic]golang学习资料[Basic]

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号