巡回セールスマン プログラムを書いているときに、これに遭遇しました。内側のループについては、
for(Point x:ArrayList<Point>) {
// modify the iterator
}
しかし、そのリストに別のポイントを追加すると、ConcurrentModicationException
スローされました。
ただし、ループを次のように変更すると、
for(int x=0; x<ArrayList<Point>.size(); x++) {
// modify the array
}
ループは例外をスローすることなく正常に実行されました。
両方とも for ループなので、一方が例外をスローするのに、もう一方が例外をスローしないのはなぜですか?