我制作了一个非常基本的 2D 数组,像这样有 3 行和 4 列。 int [][]array = new int[3][4];当我尝试像这样检查长度时, System.out.println(array.length);我得到 3 的结果。但是,当我尝试时: System.out.println(array[0].length);我得到 4 的结果。同样的事情使用array[1].length, 和array[2].length。我不确定编译器正在处理什么。谁能解释一下?
3 回答
当年话下
TA贡献1890条经验 获得超9个赞
您可以将以下 array变量视为数组数组,它由3数组组成,每个数组包含4元素
int [][]array = new int[3][4];
因此,当您尝试时,您array.length会得到3第一个包含 3 个数组的数组,4每个数组都包含元素,但是当您array[0].length, array[1].length, 时array[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
猛跑小猪
TA贡献1858条经验 获得超8个赞
二维数组看起来像一个矩阵,只是一个数组的数组。
如果你写:
System.out.println(array[0].length);
会给你你的第一个数组(4)的长度,即列数。
如果你写:
System.out.println(array.length);
会给你行数(3)的长度。
添加回答
举报
0/150
提交
取消