-1

Java で行列を表す 2 次元配列が 10 個未満だとします。各配列は 0 から 6 まで列挙されます。各配列は n*2^enumval 大きくなります。ここで、n は 0 番目に列挙された配列の要素の数です。したがって、多次元はほぼピラミッド型になるため、ギザギザの 3 次元配列が必要になります。ギザギザの 3 次元配列を作成することはできますか?

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#][#]

4

2 に答える 2

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;

または、1つのステートメントにゴルフをしました:

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}
    }
};
于 2013-02-11T01:54:43.743 に答える
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};

これには、3 つの行を持つギザギザの配列がありますが、列の数は不定です。それらの長さは 1 から 4 までさまざまです。

于 2013-02-11T01:02:05.147 に答える