从arraylist android中删除

use*_*043 2 java arraylist

我有一个安卓游戏,涉及一艘船射击敌人.我试图让它成为如果敌人在ammos的一定距离内,那么敌人将自己从屏幕上移开.我试图这样做,代码编译,但我不确定为什么敌人一旦被击中就不会从屏幕上移除.任何人都可以看到下面的代码有什么问题吗?谢谢

for (TopEnemy i : newTopEnemy)
{
    for (int q = 0; q < ammo.length; q++)
    {
       float xsubs = i.enemyX - ammo[q].positionX;
       float ysubs = i.enemyY - ammo[q].positionY;
       float squared = (xsubs * xsubs) + (ysubs * ysubs);
       float distance = (float)Math.sqrt(squared);
       if (distance < 10.0)
       {
          newTopEnemy.remove(q);
       }
    }
 }  
Run Code Online (Sandbox Code Playgroud)

Vla*_*lad 5

不应该newTopEnemy.remove(i);吗?q看起来像一个索引ammo.