记录一下Arraylistjava.util.ConcurrentModificationException异常
异常的出处
if (modCount != expectedModCount) {
throw new ConcurrentModificationException(); }
可以通过源码查看,主要是操作数modCount和expectedmodcount不同而抛出的异常。而此处的校验是在使用迭代器的时候,以及foreach的时候才会触发。
所以正常的for()循环,通过get()获取索引的方式不会抛出此异常。而通过索引的方式遍历循环删除元素时,推荐使用倒叙的方式进行删除。
例如
for(int i = array.size()-1;i>=0;i--){
if(xxxxx){
array.remove(i);
}
}