2014-10-09 47 views
-1

所以我正在寫一個迷宮求解器,並且在我的迷宮課中,我使用了一個自定義的「方形」對象數組的陣列,用於迷宮的二維網格。如何初始化一個多維數組([] [])在java中沒有值?

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。但是,我無法弄清楚如何這樣做,而且當我在這裏閱讀大量有關多維數組初始化的文章時,他們都沒有回答我的問題。我覺得我錯過了一些非常明顯的東西。

在此先感謝!

+0

Square [] [] newgrid = new int [h] [w]; – StackFlowed 2014-10-09 19:23:32

回答

1

你錯過了一些非常明顯的東西。

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

基於關閉您在這裏提交什麼樣子你gridMaker方法,你宣佈你的二維數組newgrid你只需要在那裏實例化。因此,基於把你的代碼的其餘部分應該是:

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

一旦實例,你應該能夠在陣列內的值賦給索引,從而消除你的錯誤。