Java 2D数组长度

时间:2018-10-04 06:39:32

标签: java arrays

我制作了一个非常基本的2D数组,它具有3行4列,就像这样。

    int [][]array = new int[3][4];

当我尝试检查长度时,

    System.out.println(array.length);

我得到3的结果。但是,当我尝试:

    System.out.println(array[0].length);

我得到的结果为4。使用array[1].lengtharray[2].length可以得到相同的结果。我不确定编译器正在处理什么。谁能解释?

谢谢!

4 个答案:

答案 0 :(得分:3)

您应该看的是实际上是由一个整数数组构成的一个数组。 例如,您可以这样初始化它:

int[][] array = {
    {1, 2, 3, 4}, // This is the first array in the multidimensional array
    {5, 6, 7, 8}, // This is the second array in the multidimensional array
    {9, 10, 11, 12} // This is the third array in the multidimensional array
};

请注意,多维数组中的每个单独数组的长度均为4。

所以当您问这样的长度时:

array.length // = 3

Java所做的就是为您提供数组中int []的数量。 现在,该数组中的每个数组的长度为4,因此:

array[0].length // = 4

也可以说您要访问值为7的元素。 该元素可以在第二个数组中的第三位找到。 由于Java索引从0开始,因此您可以按以下方式访问该元素。

array[1][2] // value of this element is 7

您可以在https://www.programiz.com/java-programming/multidimensional-array上阅读更多内容。 多维数组在一开始就很难,但是一旦获得它们,就会经常使用它们。

答案 1 :(得分:1)

您可以将以下array变量视为数组数组,它​​由3个数组组成,每个数组包含4个元素

int [][]array = new int[3][4];

因此,当您尝试array.length时,您会得到3第一个包含3个数组的数组,每个数组包含4个元素,但是当您array[0].length时,array[1].lengtharray[2].length,您正在检查array变量中的元素数组的长度,这些元素都给您4

编辑:

让我们说您想从数组变量array中取出数组并检查长度

int [] arr1 = array[0]; // arr1.length = array[0].length which is 4
int [] arr2 = array[1]; // arr2.length = array[1].length which is 4
int [] arr3 = array[2];  //arr3.length = array[2].length which is 4

答案 2 :(得分:0)

看到这是2D数组。

可以这么说,您有3个和4个

这就是为什么当您执行array.length时会给出行数,即3。

但是当您执行array[0].length时,它会在该行中给出列数,为4。

所有行都有相同的列,即4,因此您使用array[1].lengtharray[2].length可获得相同的结果。

答案 3 :(得分:0)

二维数组看起来像矩阵,只是数组的数组。

如果您写:

System.out.println(array[0].length);

将为您提供第一个数组(4)的长度,即列数。

如果您写:

System.out.println(array.length);

将为您提供行数(3)的长度。

相关问题