繁体   English   中英

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

[英]Initialize a 2D array with stack - 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>();
    }
}

还是有一种特殊的方法?

嗯,根据您的描述,也许效果更好?

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

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

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

int x = 1;
int y = 1;
Point point = new Point(x, y);
Stack<Balloon> balloons = map.get(point);
location = new Stack[width][height]; // remove generic
location = new Stack<Balloon>()[width][height]; // Invalid
location = new Stack<Balloon>[width][height]; // Valid!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM