java - 将二维网格中对象的坐标和特征存储在 ArrayList 中

标签 java grid 2d

我有一个网格,由数组数组组成,每个数组包含 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和两个(或更多?)子类型(HouseFactory公寓等)在这种情况下,您不再需要枚举。一切都取决于您的要求。

关于java - 将二维网格中对象的坐标和特征存储在 ArrayList 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41346788/

相关文章:

java - 在java swings中,我们如何动态地将2个组合框选定的项目仅放入第3个组合框?

extjs - 如何查询我的 ExtJS 网格以查看选中了哪些 CheckboxSelectionModel() 复选框?

java - JPanel 中的 GridBagLayout JLabels 和 JTextAreas 组织

java - 在 Java 2D 中裁剪一般路径

java - Spring应用程序-非法状态异常

java - 禁用 spring security https 重定向

java - 从用于 http 连接的字符串中删除空格

wpf - 在禁用的网格内启用特定按钮

java - 2d 球没有正确碰撞

c++ - 通过 MPI 发送和接收二维数组