我在编写旅行推销员程序时遇到了这个问题。对于内部循环,我尝试了
for(Point x:ArrayList<Point>) {
// modify the iterator
}
但是当向该列表添加另一个点时会导致ConcurrentModicationException
被抛出。
但是,当我将循环更改为
for(int x=0; x<ArrayList<Point>.size(); x++) {
// modify the array
}
循环运行良好,没有引发异常。
都是 for 循环,那么为什么一个会抛出异常而另一个不会呢?