Java—从许多不同类型中选择一个ArrayList

Java—从许多不同类型中选择一个ArrayList,java,oop,arraylist,Java,Oop,Arraylist,我正在制作一个基于网格/瓷砖的游戏。网格上的每个磁贴都有一些属性,如x位置、y位置和ID。ID根据磁贴的占用情况而变化。目前,有两种不同类型的建筑可以占用瓷砖、指挥中心或炮塔。如果要删除某个建筑,我需要将其从其ArrayList中删除: ArrayList<CommandCenter> commandCenters = new ArrayList<>(); ArrayList<Turret> turrets = new ArrayList<>();

我正在制作一个基于网格/瓷砖的游戏。网格上的每个磁贴都有一些属性,如x位置、y位置和ID。ID根据磁贴的占用情况而变化。目前,有两种不同类型的建筑可以占用瓷砖、指挥中心或炮塔。如果要删除某个建筑,我需要将其从其ArrayList中删除:

ArrayList<CommandCenter> commandCenters = new ArrayList<>();
ArrayList<Turret> turrets = new ArrayList<>();
给定ID,如何选择要从中删除的ArrayList?例如(一些伪代码):


有没有一种方法可以使这一过程变得不那么繁琐或更高效?

让这两个类都从
建筑
基类扩展而来

class CommandCenter extends Building { }
class Turret extends Building { }
然后,您可以维护所有类型建筑的单一列表

List<Building> buildings = new ArrayList<>();
List buildings=new ArrayList();

让这两个类都从
建筑
基类扩展而来

class CommandCenter extends Building { }
class Turret extends Building { }
然后,您可以维护所有类型建筑的单一列表

List<Building> buildings = new ArrayList<>();
List buildings=new ArrayList();

指挥中心和炮塔是父建筑类的后代吗?如果是这样的话,你可以给每个瓷砖一个
building
属性,然后选择那种方式。@scrapedcola命令中心和炮塔是它们自己的类。无论如何,它们都没有真正的链接。如果它们是链接的话,会更容易、更面向对象。因为它们可能共享一些属性和方法。
CommandCenter
炮塔
是父建筑类的后代吗?如果是这样的话,你可以给每个瓷砖一个
building
属性,然后选择那种方式。@scrapedcola命令中心和炮塔是它们自己的类。无论如何,它们都没有真正的链接。如果它们是链接的话,会更容易、更面向对象。因为它们有一些共同的性质和方法。