0

配列の2次元が可変数の要素を持つJavaで2次元配列を作成する方法はありますか?

たとえば、要素が事前にわかっていれば、このように配列全体を一度に宣言できます。 int[][] runs = {{1, 4, 7}, {2, 3}, {1}};

ただし、値は事前にわかりません。次のようなことを行うために、配列を部分的に宣言したいと思います。

int[][] runs = new int[3];

次に、1 次元の各要素に整数の配列を入力します。しかし、エラーが発生します。

4

3 に答える 3

3

あなたの質問を正しく理解していれば、答えは非常に簡単です。

非対称多次元配列を作成しようとしています。

既知の第 1 レベルのサイズと未知の第 2 レベルのサイズで配列を初期化できます。

例えば:

int[][] runs = new int[3][];

それで...

runs[0] = new int[]{1,2,3};
runs[1] = new int[]{4};
runs[2] = new int[2]; // no elements defined, defaults to 0,0
System.out.println(Arrays.deepToString(runs));

出力:

[[1, 2, 3], [4], [0, 0]]
于 2013-09-15T20:33:53.400 に答える
0
int[][] runs = new int[3][];

トリックを行います。

次に、各次元を初期化する必要があります。

runs[0] = new int[5];
runs[1] = new int[x];
//and so on

各次元の初期化は後でいつでも行うことができます。初期化の前に要素にアクセスしないようにしてください。NullPointerException

于 2013-09-15T20:33:38.473 に答える