arraylist,删除for循环中的变量

Ste*_*tep 0 java for-loop arraylist

我没有ArrayList太多使用,并且我认为从他们带出变量我需要一个增强的for循环.

我试图找出变量并将它们的x值与另一个x和y值比较到另一个y值,如果匹配则删除该变量.

到目前为止,我对这种方法的代码是;

public int detect(int x, int y){
    int count=0;
    for (EnemyShip tempEnemy:EList){
        if(x==tempEnemy.x && y==tempEnemy.y){
            EList.remove(tempEnemy);
            count++;
        }
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

我知道问题在于EList.remove(tempEnemy);并知道如果它是正常的循环,如何完成此任务.

但这个增强的循环(我的讲师称之为)让我感到困惑.

所以我想我的问题是如何从Arraylist中删除与x和y匹配的变量?

Mas*_*dul 6

使用Jdk 8,您可以使用removeIf方法安全地删除元素.

  EList.removeIf(e-> x==e.x && y== e.y);
Run Code Online (Sandbox Code Playgroud)

有关removeIf方法的详细信息,请阅读此文档.