Java - 从许多不同类型中挑选一个ArrayList

时间:2015-06-24 20:20:39

标签: java oop arraylist

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

ArrayList<CommandCenter> commandCenters = new ArrayList<>();
ArrayList<Turret> turrets = new ArrayList<>();

结构ID:

Command Center : 1
Turret : 2
...

如果给出ID,我如何选择要删除的ArrayList?例如(某些伪代码):

if (square(x, y).id == 1)commandCenters.remove(index);
if (square(x, y).id == 2)turrets.remove(index);
...

有没有办法减少这种麻烦或更有效率?

1 个答案:

答案 0 :(得分:4)

让这两个类从Building基类扩展。

class CommandCenter extends Building { }
class Turret extends Building { }

然后,您可以维护所有类型的建筑物列表。

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