假设我在java中有少于十个表示矩阵的二维数组。每个数组都是从0到6枚举。每个数组都是n * 2 ^ enumval更大,其中n是来自第0个枚举数组的元素数,因此我的多维几乎是金字塔形的,因此需要锯齿状的三维数组。是否有可能创建一个锯齿状的三维数组?
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#] [#]
答案 0 :(得分: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 :(得分:1)
仅Java 支持锯齿状数组。您正在寻找的3D阵列的一个示例(使用“矩阵”的“列表”作为一个更相关的具体示例):
// 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;
或者,高尔夫球到一个声明:
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}
}
};