我有一个网格,由数组数组组成,每个数组包含 1 个字符 (char [][])。
在那个网格上,我 build 了房屋,占据了网格的一个或多个 block 。 我想将位置(网格坐标)和特征(价格、维护)存储在某种列表中。
house 对象是包含多个具有以下特征的对象的枚举的一部分:
public enum Building {
HOUSE(width, height, price, upkeep, symbol)
FACTORY(width, height, price, upkeep, symbol)
}
- 宽度和高度是它占据的网格中的图 block 数量 - 符号是网格中用于表示特定建筑物的字符
我想这样做:(伪代码)
ArrayList<house> buildings = new ArrayList<House>
但是我如何添加房子的位置(这个 arrayList 中的 x 和 y 坐标?我应该使用其他数据类型吗?
最佳答案
如果您的两个房屋对象可能具有不同的属性(例如您提到的位置),我的感觉您的枚举应该是BuildingType
。
创建一个 Building
类,其中包含类似 int x; 的内容int y;
和一个 BuildingType
(枚举)指示它是哪种建筑。
如果有必要,您可以拥有父类(super class)Building
和两个(或更多?)子类型(House
、Factory
、公寓
等)在这种情况下,您不再需要枚举。一切都取决于您的要求。
关于java - 将二维网格中对象的坐标和特征存储在 ArrayList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346788/