在java和&amp ;;中创建二维数组指数pos

时间:2014-09-14 12:51:25

标签: java multidimensional-array initialization

我已经知道如何初始化二维数组。 但我不明白为什么。对于前:

我认为初始化应该是:

int [][]b=new int[][5];

而不是

int [][]b=new int[5][];

基于以下原因:

假设int [] == A类

  A b[]=new A[5];

当我用int []替换A时,结果是

 (int[])b=new (int[])[5];

所以,我错过了这一点? 非常感谢。

1 个答案:

答案 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 ,其中每一行包含另一个表示该行中列的数组。