在ArrayList中存储2D网格中对象的坐标和特征

时间:2016-12-27 14:14:39

标签: java grid 2d

我有一个网格,像一个数组,每个数组包含1个字符(char [] [])。

在那个网格上,我建造了房屋,占据了一个或多个街区。 我想在某种列表中存储位置(网格坐标)和特征(价格,维护)。

house对象是包含具有以下特征的多个对象的枚举的一部分:

public enum Building {
    HOUSE(width, height, price, upkeep, symbol)
    FACTORY(width, height, price, upkeep, symbol)
}

- 宽度和高度是它占用的网格中的切片数量 - symbol是网格中用于表示特定建筑物的角色

我想这样做:(伪代码)

ArrayList<house> buildings = new ArrayList<House>

但是我怎么能添加房子的位置(这个arrayList中的x和y坐标?我应该使用另一种数据类型吗?

1 个答案:

答案 0 :(得分:1)

如果你的两个房子对象可以有不同的属性,我的感觉你的枚举应该是BuildingType,就像你提到的位置一样。

创建一个Building类,其类似int x; int y;BuildingType(枚举),表示它所在的建筑类型。

如果有必要,你可以拥有超级Building和两个(或更多?)子类型(HouseFactoryApartment等)在这种情况下你不再需要枚举。一切都符合您的要求。