如何在java中没有值初始化多维数组([] [])?

时间:2014-10-09 19:17:10

标签: java multidimensional-array

所以我正在编写一个迷宫解算器,在我的迷宫类中,我正在使用一个自定义“方形”对象数组的数组,用于迷宫的2d网格。

public class Maze {
int height;
int width;
Square[][] grid; //2d array of squares representing the maze
Square startSquare;
Square exitSquare;

...


public static Square[][] gridMaker(int h, int w, List<Integer> squares){
 int count=0;
 Square[][] newgrid;
 for (int i=0; i<h; i++){
   for (int j=0; j<w; j++){
     Square element = new Square(squares.get(count),i,j);
     newgrid[i][j] = element;
     count++;
   }
 }
 return newgrid;
}

所以这会返回一个未初始化的变量错误,我明白我只声明了newgrid变量并且没有初始化。但是,我无法弄清楚如何这样做,而我在这里阅读了很多关于多维数组初始化的帖子,但他们都没有回答我的问题。我觉得我错过了一些非常明显的东西。

提前致谢!

2 个答案:

答案 0 :(得分:1)

你遗漏了一些非常明显的东西。

Square[][] newgrid = new Square[h][w];

答案 1 :(得分:0)

根据您在此处提交的内容,您可以在gridMaker方法中声明您需要在其中实例化2D数组newgrid。因此,根据您的其余代码,它应该是:

Square[][] newgrid = new Square[h][w];

实例化后,您应该能够为数组中的索引赋值,从而消除错误。