是什么以及如何计算2D,3D阵列的长度?

时间:2011-03-12 07:36:02

标签: java arrays multidimensional-array

我与概念略有混淆......当打印出[20] [20]的2D阵列时。答案是120 ......但无法弄清楚...它是如何计算的?

2 个答案:

答案 0 :(得分:2)

[20] [20]的2D数组的长度实际上只有20 ...因为2D数组只是一个数组数组。 “外部”数组是长度为20的数组,其每个元素是一个长度为20的数组。

public class Test
{
    public static void main(String[] args)
    {
        int[][] array = new int[20][20];
        System.out.println(array.length); // Prints 20
    }
}

如果要查找多维数组的 total 元素数,则需要对每个子数组的长度求和。例如:

public int findTotalLength(int[][] array)
{
    int sum = 0;
    for (int[] subArray : array)
    {
        sum += subArray.length;
    }
    return sum;
}

请注意,您不能只获取第一个子数组的长度并将“外部”长度乘以,因为其他子数组可以具有不同的长度。 (也可能有空引用,上面的代码没有尝试检测。)

答案 1 :(得分:-1)

len = rows * columns(对于2D数组) 你可以猜到3D 2D数组只是程序员的概念,内存中的所有数据都以串行方式存储