使用堆栈初始化2D数组 - Java

时间:2013-10-18 02:02:53

标签: java

我想声明一个2D数组,每个坐标[x] [y]将返回一个Stack。 所以,我从这个

开始
    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>();
    }
}

还是有一种特殊的方法可以做到这一点?

3 个答案:

答案 0 :(得分:2)

嗯,根据你的描述,这可能会更好吗?

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

Point已经有x和y坐标,是标准库的一部分。

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

int x = 1;
int y = 1;
Point point = new Point(x, y);
Stack<Balloon> balloons = map.get(point);

答案 1 :(得分:0)

location = new Stack[width][height]; // remove generic

答案 2 :(得分:0)

location = new Stack<Balloon>()[width][height]; // Invalid
location = new Stack<Balloon>[width][height]; // Valid!

如果您不希望值为null,则应循环访问。