2段のジャグ配列を宣言・作成し、要素を参照する例について見てみます。 次の例では、1段目の長さが3、2段目の長さが各々3, 2, 4の計9個の要素を持つ2段のジャグ配列を作成しています。
2段のジャグ配列を宣言する場合は、1段目の要素数(またはインデックスの最大値)と、要素数を空にした2段目を括弧を連ねて記述します。 2段目に要素数を指定することはできません。 このように宣言されたジャグ配列では、2段目の配列はまだ作成されておらずヌル参照(null
/Nothing
)となっています。 そこからさらに2段目となる配列を1段目に代入していくことで、2段のジャグ配列を構成することができます。
2段のジャグ配列内の各要素を参照する場合は、1段目と2段目のインデックスを括弧を連ねて記述します。 上記のコードで作成される2段のジャグ配列を図式化すると次のようになります。 1段目を縦方向、2段目を横方向で表しています。
jagged[0] → jagged[0][0]jagged[0][1]jagged[0][2] |
jagged[1] → jagged[1][0]jagged[1][1] |
jagged[2] → jagged[2][0]jagged[2][1]jagged[2][2]jagged[2][3] |
初期値を与えてジャグ配列を初期化する方法、ジャグ配列における配列初期化子については§.初期化 (配列初期化子)で解説します。
3段以上のジャグ配列を宣言・作成する場合も同様に、まず1段目の要素数のみを指定し、段数分だけ括弧を連ねて記述します。 そこから2段目となる配列の代入、さらにそこへ3段目となる配列を代入…と繰り替えしていきます。 要素を参照する場合も同様に、[1段目][2段目][3段目][…]
と段数分だけ括弧を連ねて記述します。
ジャグ配列は配列の配列であることから、宣言等の記述を次のように読み替えることもできます。
配列 | 記述 | 読み替え |
---|---|---|
2段のジャグ配列 |
int[][]
|
「int 型の 配列 [] の配列 []」 もしくは 「1段のジャグ配列 int[] に 配列 [] を含めるようにしたもの」 |
3段のジャグ配列 |
int[][][]
|
「int 型の 配列 [] の配列 [] の配列 []」 もしくは 「2段のジャグ配列 int[][] に 配列 [] を含めるようにしたもの」 |
4段のジャグ配列 |
int[][][][]
|
「int 型の 配列 [] の配列 [] の配列 [] の配列 []」 もしくは 「3段のジャグ配列 int[][][] に 配列 [] を含めるようにしたもの」 |