今天写迭代器的for循环时候遇到了这个问题。自己在调试过程也在想是不是迭代器在对容器迭代,for循环里面也对这个容器操作才报的错,还真是。下面是百度到的详细解释:
Java容器的快速报错机制ConcurentModificationException
Java容器有一种保护机制,能够防止多个进程同时修改同一个容器的内容。如果你在迭代遍历某个容器的过程中,另一个进程介入其中,并且插入,删除或修改此容器的某个对象,就会立刻抛ConcurrentModificationException。
迭代遍历指的就是使用迭代器Iterator(ListIterator)或者forEach语法,实际上一个类要使用forEach就必须实现Iterable接口并且重写它的Iterator方法所以forEach本质上还是使用Iterator。
原文链接:https://blog.csdn.net/xielinxiao/article/details/90754069