有没有办法从 Java 的链表中删除第一次出现的特定对象类型?

Is there a way to remove the first occurence of a specific object type from a linked list in Java?

我有一个名为 objects 的“gameObjects”链接列表,其中包含 2 个子类 Beat 和 Player 的实例。我想在调用方法时删除链接列表中节拍的第一个实例。因为它是从单独的链表中专门为节拍删除节拍的方法,但由于节拍是使用第二个链表呈现的,因此它们不会消失。

public static void hit(){
    //Method for player to hit the beat
    Beat currentObject = (Beat) Game.beatLinkedList.getFirst();
    int distanceToPlayer = currentObject.getX() - 200;
    if (distanceToPlayer <= 50){
        score +=100;
    }

    Game.beatLinkedList.removeFirst();
    System.out.println("Beat Linked List Length: " + Game.beatLinkedList.size());
    System.out.println("Score: " + score);
}

我曾尝试使用 removeFirstOccurence,但可能误解了其含义,而且我确定语法不正确。

 Handler.object.removeFirstOccurrence(Beat.beat);

如果问题还需要什么,我会在需要时添加,但我认为几乎所有内容都在那里,如果没有,请见谅。

可以使用instanceof关键字来查看,例如下面的代码:

import java.io.IOException;
import java.util.ArrayList;


class GameObject {
    String name;

    public GameObject(String name) {
        this.name = name;
    }
}

class Player extends GameObject {

    public Player(String name) {
        super(name);
    }
}

class Entity extends GameObject {

    public Entity(String name) {
        super(name);
    }
}

public class Main {

    public static void main(String[] args) throws IOException {
        ArrayList<GameObject> list = new ArrayList<>();
        Player john = new Player("John");
        Entity doe = new Entity("Doe");
        Player jane = new Player("Jane");
        list.add(john);
        list.add(doe);
        list.add(jane);
        for (GameObject obj : list) {
            if (obj instanceof Player) {
                list.remove(obj);
                break;
            }
        }
    }
}

删除第一次出现的类型为 Player 的游戏对象。