【Java】多次元配列の初期化まとめ|二次元配列の書き方・注意点をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Java の多次元配列は、
「配列の配列」 という仕組みで作られています。

そのため、初期化の書き方が複数あり、

  • 行数・列数だけ指定する
  • 値をまとめて初期化する
  • 行ごとにサイズを変える(段階的配列)

など、用途に応じて使い分けが必要です。

この記事では、やさしく・実務寄りに
多次元配列の初期化方法を整理していきます。


初期化①:行数・列数だけ指定する(空の二次元配列)

Java
int[][] matrix = new int[2][3];
  • 2 行 3 列の二次元配列
  • すべて初期値(int → 0)で埋まる
  • まず「枠」だけ作りたいときに便利

初期状態のイメージ

[
[0, 0, 0],
[0, 0, 0]
]

初期化②:値をまとめて初期化(最も読みやすい)

Java
int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6}
};
  • 行ごとに {} で囲む
  • 実務でも最もよく使われる
  • 行数・列数は自動で決まる

初期状態のイメージ

[
[1, 2, 3],
[4, 5, 6]
]

初期化③:new を使った完全版(冗長だが正しい)

Java
int[][] matrix = new int[][] {
    {1, 2},
    {3, 4}
};
  • メソッドに配列を渡すときなどに使うことがある
  • 通常は省略形 { ... } で十分

初期化④:宣言と初期化を分ける場合の注意点

Java
int[][] matrix;
matrix = new int[][] {
    {1, 2},
    {3, 4}
}; // OK

ただしこれは NG:

Java
int[][] matrix;
matrix = {{1, 2}, {3, 4}}; // エラー

ポイント

{} の省略形は「宣言と同時」のときだけ使える。


初期化⑤:段階的配列(行ごとに列数を変える)

Java の多次元配列は「配列の配列」なので、
行ごとにサイズを変えることができます。

Java
int[][] jagged = new int[3][]; // 行数だけ決める

jagged[0] = new int[2]; // 2 列
jagged[1] = new int[5]; // 5 列
jagged[2] = new int[1]; // 1 列

初期状態のイメージ

[
[0, 0],
[0, 0, 0, 0, 0],
[0]
]
  • 行ごとに列数が違う「段階的配列」
  • Java ならではの柔軟な構造
  • 実務ではデータの形が揃わないときに便利

初期化⑥:三次元以上も同じ考え方

Java
int[][][] cube = new int[2][3][4];
  • 2 × 3 × 4 の三次元配列
  • 初期値はすべて 0
  • 「配列の配列の配列」というだけで仕組みは同じ

よくあるミスと注意点

ミス①:行と列を逆に理解する

Java
int[][] m = new int[2][3];
  • 行:2
  • 列:3

ミス②:宣言と初期化を分けて {} を使う

Java
int[][] a;
a = {{1, 2}}; // エラー

ミス③:段階的配列で null を忘れる

Java
int[][] jagged = new int[3][];
System.out.println(jagged[0][0]); // NullPointerException

行を new していないと null のまま。


実務での推奨スタイル

読みやすさ重視で {} を使う

Java
int[][] matrix = {
    {1, 2},
    {3, 4}
};

行数・列数だけ決めたいときは new int[行][列]

Java
int[][] matrix = new int[2][3];

段階的配列は「配列の配列」と理解して使う


まとめ

多次元配列の初期化のバリエーション

  • new int[2][3](枠だけ作る)
  • { {1,2}, {3,4} }(値をまとめて)
  • new int[][] { ... }(完全版)
  • 段階的配列(行ごとにサイズを変える)

注意点

  • {} の省略形は宣言と同時のみ
  • 行と列を逆に理解しない
  • 段階的配列は null に注意

decopon
decopon

多次元配列は、 「配列の配列」という考え方を持つだけで 初期化のバリエーションが一気に理解できます。特に {} を使った初期化は読みやすく、 あなたの“やさしいコード”にもつながります。あなたの学びが、次のステップにつながりますように。

moco
moco

多次元配列は“箱の列が並んでる”イメージ。
初期化の書き方を知ると、もっと扱いやすくなるよ。

コメント

タイトルとURLをコピーしました