【发布时间】:2014-11-11 22:29:50
【问题描述】:
我正在尝试从迭代的 ArrayList 中删除一个对象,但不能从循环内部这样做,这就是我目前所拥有的
for(Pearl pearl : this.pearls){
pearl.onDraw(canvas);
if(fish.isCollide(pearl)){
this.pearls.remove(pearl);
}
}
如果ArrayList大于1,上面的代码就不起作用了。
我正在考虑将代码更改为如下所示,但更想知道是否有更简单的方法。
List<Pearl> pearls_delete = new ArrayList<Pearl>();
for(Pearl pearl : this.pearls){
pearl.onDraw(canvas);
if(fish.isCollide(pearl)){
pearls_delete.add(pearl);
}
}
this.pearls.removeAll(pearls_delete);
【问题讨论】:
-
您的解决方案很常见。没有更简单的解决方案。
-
@libik 这是不正确的。在下面使用
Iterator查看我的解决方案