前言
我在阅读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