Java Make声明并初始化我的对象的2d数组

时间:2015-03-08 02:23:44

标签: java object nullpointerexception

我正在制作一个程序,使一个随机大小的网格> 1,然后随机地将墙壁放入迷宫内。然后该程序应该找到从起点到目标的路线。我正在使用广泛的搜索。

我的问题是我找不到存储坐标的方法,所以我创建了自己的类Coord,它具有x和y值。对于我的部分算法,我需要制作一个Coord

类型的二维数组

我似乎无法让它工作,每次我尝试运行该程序时,我得到ArrayIndexOutOfBoundsException。我不知道为什么或如何分配这个数组,我的算法需要它。

以下是我尝试运行的代码:

Coord[][] test2dArray = new Coord[3][3];
test2dArray = Coord.make2dArray(3, 3);

这是在呼唤:

public class Coord {
int x;
int y;


public static Coord[][] make2dArray(int sizex, int sizey){
    Coord[][] array= new Coord[sizex][sizey];
    for(int x=0; x<sizex; x++){
        for(int y=0; x<sizey; y++){
            array[x][y] = new Coord(0,0);
        }
    }
    return array;
}

到目前为止,我确实有一个使用此代码的1d数组:

Coord[] testArray = Coord.makeArray(4);

致电:

public static Coord[] makeArray(int size){
    Coord[] array= new Coord[size];
    for(int i=0;i<size;i++){
        array[i]= new Coord(0,0);
    }
    return array;

}

如果你能帮助我并解释发生的事情会很棒!非常感谢你的帮助:)

1 个答案:

答案 0 :(得分:0)

该行

for(int y=0; x<sizey; y++)

应该是

for(int y=0; y<sizey; y++)

需要使用条件y<sizey来阻止y过大并导致ArrayIndexOutOfBoundsException。您的拼写错误意味着y未停止。