2011-03-12 85 views
0

我對概念有些困惑......當打印出[20] [20]的二維數組長度時。答案是120 ...但無法弄清楚......它是如何計算的?什麼是和如何計算2D,3D陣列的長度?

+2

我不知道,它是如何計算的?介意分享代碼? – Mehrdad 2011-03-12 07:37:23

+0

剛剛使用內置的.lenght函數....答案是120 ...試圖找出「爲什麼它打印120而不是20」。 – 2011-03-12 07:46:46

+2

如果你真的已經用[20] [20]構造它,它就不會。我懷疑這是一個診斷問題。請參閱我的答案,瞭解它打印的示例20.如果您可以提供類似的簡短但完整的打印120的程序,請執行此操作。 – 2011-03-12 07:50:32

回答

2

[20] [20]的二維數組的長度實際上只有20 ...因爲二維數組只是一個數組數組。 「外」數組是長度爲20的陣列,其中每個元素是長度20

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

如果要找到數的多維陣列的元件的陣列,則將需要總結每個子陣列的長度。例如:

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

請注意,可以不只是採取第一子陣列的長度,並通過乘以「外」的長度,作爲其他的子陣列可以具有不同的長度。 (也可能有null引用,上面的代碼沒有試圖檢測到。)

-1

len = rows * columns(對於2D陣列) 您可以猜測爲3D 2D數組僅適用於程序員概念,內存中的所有數據都以串行方式存儲