我已经知道如何初始化二维数组。 但我不明白为什么。对于前:
我认为初始化应该是:
int [][]b=new int[][5];
而不是
int [][]b=new int[5][];
基于以下原因:
假设int [] == A类
A b[]=new A[5];
当我用int []替换A时,结果是
(int[])b=new (int[])[5];
所以,我错过了这一点? 非常感谢。
答案 0 :(得分:1)
Java中的二维数组只是一个数组数组。如果我们将第一级数组可视化为包含矩阵的行,并且第二级数组在每行中保存列,则更容易理解 - 这是有道理的,因为当我们访问位置m[i][j]
中的元素时,我们会引用行i
和列j
。当我们写这个:
int[][] b = new int[5][];
...我们已经说明阵列将有5行,但我们事先并不知道每行会有多少列(这个数字可以变化!)。另一方面,当我们这样说时:
int[][] b = new int[5][5];
...我们从一开始就说明将有5行,每行有5列。现在你可以看出为什么这没有意义了:
int[][] b = new int[][5];
...它就像是说:我们希望有5列,但我们不知道会有多少行 - 请记住,二维数组是的数组rows ,其中每一行包含另一个表示该行中列的数组。