2D阵列如果我声明的2D阵列,例如:初始化在JAVA
int[][] numbers = new int[5][];
我想你必须单独地声明/初始化各5为int []? 比如,以前我分配一个值数[0] [1],我不得不说:
我写了一个小程序,并明确提出一个价值数[0] [1]运行它,它没有初始化数字[0]。 我完全不认为单个数组必须先在2d数组中初始化?
编辑:我的误解是在初始化。前两条语句没问题,因为我声明了goodArray中每个int []的长度为3,这会导致它们全部被初始化。而在badArray声明,我只是宣布有多少阵列有(3),所以我得到一个NPE:
int [][]goodArray = new int[3][3];
goodArray[0][1] = 2;
int[][] badArray = new int[3][];
badArray[0][0] = 2;
这不应该工作,它会抛出一个NPE,当我尝试。你可以发布一个简短但完整的程序来证明这一点吗? –
这样你可以做不同大小的数组,例如'numbers [0] = new int [5]'和'numbers [1] = new int [7]' – nachokk