java - 二维数组的 array.length 值由什么决定?

标签 java arrays

使用 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/

相关文章:

c++ - 在 vector 使用中找不到 fatal error

java - 查找 ejb jndi 名称 tomcat 6 时的类加载器问题

java - Android - Java ListView 项目顺序

java - 如果我不使用 Drupal CMS,我怎样才能让 UI 看起来更漂亮?

javascript - 如何打印数组中变量的名称?

php - 如何使用mysql_fetch_array 的结果?

java - 尝试为 4 个简单条件创建正则表达式

java - 使用 PowerMockito 访问方法的局部变量?

javascript - 传播运算符会影响性能吗?

PHP array_filter,如何在回调中获取key?