2013-02-11 46 views
-1

說我有少於十個二維數組表示矩陣在java中。每個陣列是從0到枚舉6.每個陣列爲n * 2^enumval更大,其中n是從第0列舉數組元素的數量,從而我的多維將幾乎是金字塔形的,因此需要一個鋸齒狀三維陣列。是否可以創建一個鋸齒狀的三維數組?創建一個三維交錯數組來存儲不同大小的二維數組在java中

int[][] array0 = new int[2][2]; 
int[][] array1 = new int[4][4]; 
int[][] array2 = new int[8][8]; 
int[][] array3 = new int[16][16]; 
int[][][] arrayStorage = new int[][][]; 

我想向陣列存儲與以下方法:arrayStorage [columnOfArray#] [rowOfArray#] [#]

+2

只需展示一個簡單的例子來說明你想創建什麼類型的數組,而不是散文描述。 – millimoose 2013-02-11 01:07:48

+0

謝謝你,我只是繼續做下去。我會在未來記住這一點。 – virtu 2013-02-11 01:13:20

回答

1

是的,這是完全有可能在Java中創建鋸齒狀排列。

下面是一些示例語法是:

int[][] jagged = new int[3][]; 
    jagged[0] = new int[]{1, 2, 4}; 
    jagged[1] = new int[]{9, 17, 35, 80}; 
    jagged[2] = new int[]{100}; 

在這方面,我有一個鋸齒狀排列三排,但columsn的不確定量。它們的長度從1變化到4

1

爪哇支持交錯數組。那種三維陣列的一個例子(使用「矩陣」的「名單」作爲一個更聽上去很像具體的例子),你正在尋找:

// an array of m*n (or jagged) 2D arrays. 
int[][][] matrices = new int[2][][]; 

// A 2*2 matrix 
int[][] matrix22 = new int[2][]; 
matrix22[0] = new int[] {1, 2}; 
matrix22[1] = new int[] {3, 4}; 

matrices[0] = matrix22; 

// A 3*3 matrix 
int[][] matrix33 = new int[3][]; 
matrix33[0] = new int[] {1, 2, 3}; 
matrix33[1] = new int[] {4, 5, 6}; 
matrix33[2] = new int[] {7, 8, 9}; 

matrices[1] = matrix33; 

或者golfed一個說法:

int[][][] matrices2 = new int[][][] { 
    new int[][] { 
     new int[] {1, 2}, 
     new int[] {3, 4} 
    }, 
    new int[][] { 
     new int[] {1, 2, 3}, 
     new int[] {4, 5, 6}, 
     new int[] {7, 8, 9} 
    } 
};