java java中foreach和迭代器在遍历List集合,一些情况下为什么能使用集合自动的删除方法删除元素?

java中foreach和迭代器在遍历List集合,一些情况下为什么能使用集合自动的删除方法删除元素?当您是<70时,倒数第二位是66。您没有引发异常,因为以前的列表大小是5。删除66后,列表大小

java中foreach和迭代器在遍历List集合,一些情况下为什么能使用集合自动的删除方法删除元素?

当您是<70时,倒数第二位是66。您没有引发异常,因为以前的列表大小是5。删除66后,列表大小为4。第一次遍历列表大小为5的数组时,指针66位于index=4中。遍历列表大小为4的数组时,指针66位于index=4中newlist.size文件()。

ArrayList中的此方法将判断列表已被读取,因此不会引发异常。

1]]2

3

公共布尔hasnext(){

返回光标!=size

}

A< 90,第二位变了,列表的大小也变了

看ArrayList的源代码,调用这个方法检查列表的大小是否每次都变,但是这个方法发生在hasnext方法之后

1

2

3

4

final void checkForComodification(){

if(modCount!=expectedModCount)

抛出新的ConcurrentModificationException()

}