Java删除arraylist迭代器

Kaj*_*Kaj 2 java iterator arraylist

我在我的班级'Bomb'的Java中有一个ArrayList.

这个类有一个方法'isExploded',如果炸弹爆炸,这个方法将返回true,否则返回false.

现在我正在尝试迭代这个arraylist,调用此方法isExploded并从列表中删除该元素,如果它返回true.

我知道如何迭代:

    for (Iterator i = bombGrid.listIterator(); i.hasNext();) {
    if () {         
        i.remove();
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何通过迭代器访问Bomb类本身的方法isExploded.有谁知道答案吗?

此致

卢克索

Den*_*ret 5

您需要使用下一个获取炸弹:

for (Iterator i = bombGrid.listIterator(); i.hasNext();) {
   Bomb bomb = (Bomb) i.next(); 
   if (bomb.isExploded()) i.remove();
}
Run Code Online (Sandbox Code Playgroud)

或者如果你可以Iterator<Bomb>从你的炸弹网格中得到一个(它是一个ArrayList<Bomb>?):

Iterator<Bomb> i = bombGrid.listIterator();
while (i.hasNext()) {
   Bomb bomb = i.next(); 
   if (bomb.isExploded()) i.remove();
}
Run Code Online (Sandbox Code Playgroud)

这假设您的迭代器支持remove,例如由一个给出的情况ArrayList.