1

我想声明一个二维数组,每个坐标 [x][y] 将返回一个堆栈。所以,我从这个开始

    private Stack<Balloon>[][] location;

我尝试为它创建内存空间。我试过这个,但我失败了

    location = new Stack<Balloon>()[width][height];

我应该做类似的事情吗

for(int i=0; i < width; i++){
    for(int j=0; j < height; j++){
        location[i][j] = new Stack<Balloon>();
    }
}

或者有什么特殊的方法可以做到这一点?

4

3 回答 3

2

嗯,根据你的描述,也许这会更好?

Map<Point, Stack<Balloon>> map = new HashMap<Point, Stack<Balloon>>();

APoint已经有一个 x 和 ay 坐标,并且是标准库的一部分。

这样,您可以使用以下方法查询特定堆栈:

int x = 1;
int y = 1;
Point point = new Point(x, y);
Stack<Balloon> balloons = map.get(point);
于 2013-10-18T02:08:45.040 回答
0
location = new Stack[width][height]; // remove generic
于 2013-10-18T02:10:52.910 回答
0
location = new Stack<Balloon>()[width][height]; // Invalid
location = new Stack<Balloon>[width][height]; // Valid!

如果您不希望这些值为空,则应该循环遍历。

于 2013-10-18T02:11:07.437 回答