主な内容の要点
基本イメージ
- 一次元配列 → 直線(リスト)
- 二次元配列 → 表(行×列)
- 三次元配列 → 立方体(層×行×列)
- 添字の指定は
[層][行][列]の順番で行う
例:maze[1][2][0]→ 層1・行2・列0の要素
作り方(初期化方法)
- サイズだけ指定して後から値を入れる
int[][][] cube = new int[2][3][4];
Java- 中身を同時に書く
int[][][] data = {
{ {1,2,3}, {4,5,6} },
{ {7,8,9}, {10,11,12} }
};
Java- ジャグ配列(三次元版)
- 層や行ごとに列数が違う配列も作れる
int[][][] jag = new int[2][][];
jag[0] = new int[2][];
jag[0][0] = new int[]{1,2};
jag[0][1] = new int[]{3};
jag[1] = new int[1][];
jag[1][0] = new int[]{4,5,6};
Java使い方(取り出し・表示)
- 要素の取り出し
System.out.println(data[1][0][2]); // 9
Java- 三重ループで全表示
for (int z=0; z<data.length; z++) {
for (int i=0; i<data[z].length; i++) {
for (int j=0; j<data[z][i].length; j++) {
System.out.print(data[z][i][j] + " ");
}
System.out.println();
}
System.out.println("---");
}
Javaよくあるつまずき
- 添字の順番を間違える →
[層][行][列]を意識 - 範囲外アクセス →
lengthを必ず使う - ジャグ配列の未初期化 → 各層・行に
newを忘れない - 出力が見づらい → 層ごとに区切りやラベルを入れる
まとめ
三次元配列は「立方体のデータ構造」として理解するとわかりやすいです。
- 層・行・列の3軸で管理
- 三重ループで処理
- ジャグ配列で柔軟に表現可能
- 応用例(迷路探索など)で実践的に使える
