2013-02-11 45 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} 
    } 
};