在第二个坑的时候,我们说到了 Arrays.asList
返回的 List 不支持增删操作,
是因为他的自己实现了一个内部类 ArrayList
,这个内部类继承了 AbstractList
没有实现 add()
和 remove()
方法导致操作失败。
但是第三个坑的时候,我们利用 java.util.ArrayList
包装了返回的 List,进行增删操作还是会失败,那是为什么呢?
删除方法逻辑:
在foreach
中操作增删,因为因为 modCount
会被修改,与第一步保存的数组修改次数不一致,抛出异常 ConcurrentModificationException
在正确操作是什么?我总结了四种方式