私はこのコードを持っています:
アウトレットは、メソッドに渡される ArrayList です。riverBasin は int (int[][] riverBasin) の 2D "行列" です。
for (int[] item: outlets) {
if (item[0] < 2 || item[0] > this.riverBasin.length - 1 || item[1] < 2 || item[1] > this.riverBasin[0].length - 1) {
System.out.println("This provisionally substitutes error catching. Outlet (" + item[0] + "," + item[1] + ") is not correct.");
outlets.remove(item);
System.out.println("Remaining outlets: ");
for (int[] atem: outlets) {
System.out.print("(" + atem[0] + "," + atem[1] + ")\n");
}
}
else {
this.riverBasin[item[0]][item[1]] = 10;
}
}
ArrayList アウトレットから「アイテム」を削除すると、エラーが発生します。
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at org.geoframe.ocn.Eden.setMultipleOutlet(Eden.java:135)
at org.geoframe.ocn.Eden.main(Eden.java:205)
私は本当に完全には理解していません。ただし、イテレータを壊したのではないかと思います。正しい ?ArrayList 内の不要な要素を削除するにはどうすればよいでしょうか。
よろしくお願いします。
リカルド