【发布时间】:2013-08-25 03:27:56
【问题描述】:
我有这个代码:
outlets 是传递给方法的 ArrayList; RiverBasin 是 int (int[][] riverBasin) 的二维“矩阵”;
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 中不需要的元素。
提前感谢您的帮助,
里卡多
【问题讨论】:
-
第 1 步:清晰地格式化代码。 (这次我已经为您完成了最基本的操作。)