java我怎样才能让我的每个tile对象都启动一个空的arraylist,以便以后添加内容?
我正在尝试用java实现一个棋盘游戏,目前正在开发这个棋盘游戏。游戏板上有37块六边形瓷砖。每一个都可以容纳建筑物、几种生物,以及一个显示其所有者的标记
我有37个每个磁贴的实例,现在我不确定如何让每个磁贴在每个磁贴上保存一个集合(数组、数组列表、链表等等)。当玩家在棋盘上移动这些生物时,我将从该棋盘上的阵列中取出东西,并将其添加到另一个棋盘上的另一个阵列中
我的第一反应是在我的Tile类的构造函数中放入几个数组列表,但我认为这是不可能的。有什么想法吗
这就是我到目前为止如何定义我的Tile类(如果好奇的话):
public class Tile {
//neighbours of each tile
public Tile n0;
public Tile n1;
public Tile n2;
public Tile n3;
public Tile n4;
public Tile n5;
public int owner = 0;
public Tile (Terrain ter, int owned){
owner = owned;
}
}
编辑:
我想用我的构造函数做这样的事情:
public Tile (Terrain ter, int owned, ArrayList<Creature> creatureList){
owner = owned;
}
但我不确定这是否合法,或者这是否合理。这样做能让我将数组列表与我定义的每个磁贴实例相关联吗?还是有更好的方法?我不知道它是否需要在构造函数的参数中定义
# 1 楼答案
更好的方法是使用一个数组来容纳这样的每个平铺对象,因为您可以确定大小将根据您的电路板而固定
然后用空列表初始化每个平铺对象
这样,你就不必在主类中创建37个对象,同时也可以灵活地为每个单独的平铺添加任意数量的项目
经过重构的完整类如下所示: