关于增强for循环不能使用list.remove

2020-02-25  本文已影响0人  surrealtire

转自网络

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

上一篇下一篇

猜你喜欢

热点阅读