转自网络
ArrayList是线程不安全的,在被修改后再继续迭代就报错,modCount是指ArrayList的修改次数,每次add或remove都会自增,当迭代时,就是将这个modCount暂存在expectedModCount中,每次获取下一个元素时,都检查下修改次数是否有变动,有变动则不再继续迭代,而是抛出错误ConcurrentModificationException ,这样就强制要求在迭代时不能进行remove/add操作,而foreach会编译成迭代,所以foreach时也不能进行remove/add操作。
网友评论