使用 Java 工作,假设我制作了一个 30 x 50 单位的 2D 数组,如下所示:
public Array() {
int[][] array = new int[30][50];
}
然后我这样做:
int rows = array.length;
int columns = array[1].length;
为什么 array.length 的值为 30?长度不也是50吗?同样,array[1].length 如何计算出 50?
我在其他地方看到过这个答案,但我不明白答案(这里是 Java 初学者)。
编辑:这是之前向我解释的,我不明白。 “当我们引用 array.length 时,我们得到较大列表的长度,即 30。当我们引用 array[1].length 时,我们得到大列表中索引为 1 的小列表的长度列表,这是大列表中的第二个小列表。其值为 50。”
最佳答案
如果你重写这个,也许它会变得更清楚
public Array() {
int[][] array = new int[30][];
array[0] = new int[50];
array[1] = new int[50];
// ... you may use a loop, but to make it explicit
array[29] = new int[50];
}
声明数组时,必须至少指定第一个维度 (30)。 在您的示例中,第一维的所有元素都包含对包含 50 个元素的数组的数组引用。
您也可以有不同的长度:
public Array() {
int[][] array = new int[30][];
array[0] = new int[5];
array[1] = new int[7];
// ...
}
关于java - 二维数组的 array.length 值由什么决定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085171/