相关疑难解决方法(0)

为什么一个循环抛出一个ConcurrentModificationException,而另一个不抛出?

我在编写旅行推销员计划时遇到过这种情况.对于内循环,我尝试了一个

for(Point x:ArrayList<Point>) {
// modify the iterator
}
Run Code Online (Sandbox Code Playgroud)

但是当向该列表添加另一个点时会导致ConcurrentModicationException被抛出.

但是,当我将循环更改为

for(int x=0; x<ArrayList<Point>.size(); x++) {
// modify the array
}
Run Code Online (Sandbox Code Playgroud)

循环运行良好,没有抛出异常.

两个for循环,那么为什么一个抛出异常而另一个没有呢?

java iterator concurrentmodification

10
推荐指数
2
解决办法
5134
查看次数

标签 统计

concurrentmodification ×1

iterator ×1

java ×1