1

想象一个对象数组。

int MAX_ALLOWED = 5;
Object [] object = new Object [MAX_ALLOWED];

假设该对象是游戏的一个单元,具有其各自的位置。当用户按下一个名为“spawn unit”的按钮时,代码将是:

 unit [] = new Object (location);

如您所见,[ _ ]中没有标识符,因此出现了问题。我不知道在这里放什么。如果我放 0,每次我创建一个对象时,它都会在 0 处覆盖对象的内存。

访问特定对象或单元时。

for (int i = 0; i <= unit.length; i++)
    {
    if (location = unit [i].get_Location)
    {
        move (unit [i]);
        }
    }

但是如果我访问 0 之后的元素,这样做会给我一个空指针异常。

4

1 回答 1

0

对于存储事物列表的一般问题,应避免使用数组。相反,集合对程序员更友好,而且仍然非常快。

在您的情况下,使用数组意味着必须保留最后使用的元素的索引并管理大小等。使用 aList更容易:

List<Unit> units = new ArrayList<Unit>();

然后使用,简单地说:

units.add(new Unit());

如果要限制大小,请在添加之前:

if (units.size() == MAX_ALLOWED) {
    // do something else
}

迭代元素:

for (Unit unit : units) {
    // do something with unit
}

列表的一个好处是它们会根据需要增加大小,尽管在您的情况下这可能不是必需的,因为您似乎想要一个固定的最大值。

于 2013-09-07T06:02:23.643 回答