Java源码分析(一)-- modCount与ConcurrentModficationException异常

本文深入分析了Java ArrayList中的`modCount`及其引发的`ConcurrentModficationException`异常。在使用Iterator遍历ArrayList时,如果直接修改列表,会导致此异常。通过源码解析,阐述了异常产生的原因和解决方法,提醒开发者避免在遍历过程中修改集合。
摘要由CSDN通过智能技术生成

前言

我在阅读Java.util.ArrayList源码的时候,发现不少方法中有”modCount++;”,很好奇这个modCount有何作用,一番查证,找到了一些有趣的东西
参考:https://blog.csdn.net/androiddevelop/article/details/21509345

摘要

modCount 记录修改次数,
ConcurrentModficationException 并发修改异常,
通过Iterator遍历过程中,如果对修改ArrayList进行修改,可能会引发”并发修改异常”,

这是操作的不规范,让我带大家跳坑,详细分析这个错误,死而后已。


一、错误示范,First Blood.

public static void main(String[] args){
    ArrayList<Integer> list = new ArrayList<Integer>();  
    list.add(3);  
    Iterator<Integer> iterator = list.iterator();  
    while(iterator.hasNext()){  
       Integer integer = iterator.next();  
       if(integer==3)  
            list.remove(integer);   //注意这个地方  
    } 
}

重点来了,这份代码的报错,可不是IndexO

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值