我有这个代码:
outlets是传递给方法的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 outlets中删除“项”会生成错误:
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中不需要的元素呢。
提前感谢您的帮助,
里卡多
不能使用“for each”循环删除。你可以用迭代器代替它。
需要显式使用迭代器并调用remove()。
final Iterator<int[]> iterator = outlets.iterator();
while (iterator.hasNext()) {
final int[] item = iterator.next();
....
if (...) {
iterator.remove();
}
}
应该使用迭代器迭代ArrayList。然后使用迭代器的remove方法。
我当前正在将一个ArrayList转换为一个字符串,以便将其发送到一个DB,这样我就可以在另一端检索它,并稍后将其转换回一个ArrayList。 我的思路是通过执行以下操作将其转换为当前的字符串 是ArrayList,看起来如下所示: 当我查看数据库时,它看起来像这样 如何删除开头的和最后的以便在数据库上看起来像? 在另一端,我可以使用以下方法获得它: (我正在使用SQLite,这是我大学项目的一
这是我想做的代码,但什么也没有做。我甚至试过这个 但我找不到任何解决办法...有人能帮我吗?
问题内容: 我有一个奇怪的问题。我以为这会花我几分钟,但现在我已经挣扎了几个小时……这就是我得到的: 该是 在ArrayList中我得到了一些字符串(共14个左右),和他们的9,它得名_Hardi。 并使用上面的代码,我想删除它们。如果我使用a,那么它将打印出9次,这是好的,因为_Hardi在ArrayList中是9次。 但是,当我使用它时,它不会删除所有9个,而只会删除几个。我做了一些测试,我也
问题内容: 我有一个包含以下代码段的受测试方法: 我的单元测试代码如下所示: 问题是,在运行测试时,测试代码永远不会进入for循环。我应该在什么时候指定条件才能进入for循环?目前,我已指定,但我猜它从未使用过。 问题答案: 您的问题是,在for-each循环中使用集合时,将调用其方法;而且您还没有使用该特定方法。 我强烈建议您传递一个真实的列表,而不是模拟列表,该列表中的元素只是您的模拟对象,您
问题内容: 是否可以在增强的for循环中找到当前索引?如果可以,怎么办? 我知道我们可以用一个额外的变量来检查它。但是还有其他方法。 问题答案: 是否可以在增强的for循环中找到当前索引? 不。如果需要索引,建议您使用普通的for循环。 但是,在这种情况下,您似乎实际上并不需要索引。除非您要处理某种非常奇怪的列表类型,否则可以使用和使用方法,如下所示:
本文向大家介绍ArrayList在for循环中使用remove方法移除元素方法介绍,包括了ArrayList在for循环中使用remove方法移除元素方法介绍的使用技巧和注意事项,需要的朋友参考一下 有时候我们需要在一个ArrayList的for循环中动态删除元素的需求, 废话不多说看代码 执行代码, 结果如下: 可以看到没有删除前, 我们的list的项和循环对应的数字都是正确的, 但是下面的循环