はじめに
Java の配列は一次元だけでなく、
二次元・三次元といった多次元配列 も扱えます。
ただし、宣言方法が複数あるため、
int[][] aとint a[][]の違いは?- どれが実務でよく使われる?
- 初期化と組み合わせるとどう書く?
と迷いやすいポイントでもあります。
この記事では、やさしく・実務寄りに
多次元配列の宣言方法を整理していきます。
多次元配列の宣言方法は大きく3種類
① 推奨:型の後ろにまとめて [][] をつける(最も読みやすい)
Java
int[][] matrix;
String[][] table;特徴
- Java ではこの書き方が最も一般的
- 「int の二次元配列」という意味が明確
- 実務でもほぼこのスタイル
② 変数名の後ろに [][] をつける(非推奨)
Java
int matrix[][];
String table[][];特徴
- Java でも使えるが、C言語風で読みづらい
- チーム開発では避けられることが多い
③ 型と変数名に分散させる(混乱の元)
Java
int[] matrix[];
int[][] matrix2;特徴
- 正しく動くが、可読性が低い
- 初心者が混乱しやすい
- 実務ではほぼ使われない
宣言と初期化を同時に行うバリエーション
① 要素数だけ指定する(空の二次元配列)
Java
int[][] matrix = new int[2][3];- 2 行 3 列の二次元配列
- すべて初期値(0)で埋まる
② 値をまとめて初期化(最も読みやすい)
Java
int[][] matrix = {
{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];
jagged[1] = new int[5];
jagged[2] = new int[1];- 行ごとに列数が違う「段階的配列」
- Java ならではの柔軟な構造
よくあるミスと注意点
ミス①:int[] a[], b; の意味を誤解する
Java
int[] a[], b;a→ 二次元配列b→ 一次元配列
読みづらく、誤解の元。
ミス②:宣言と初期化を分けて {} を使う
Java
int[][] a;
a = {{1, 2}}; // エラーミス③:行と列を逆に理解する
Java
int[][] m = new int[2][3];- 行:2
- 列:3
実務での推奨スタイル
一貫して「型の後ろに [] をまとめて書く」
Java
int[][] matrix;
String[][] table;初期化は読みやすい形で
Java
int[][] matrix = {
{1, 2},
{3, 4}
};多次元配列は “配列の配列” と理解する
まとめ
多次元配列の宣言方法は3種類
- 推奨:
int[][] a; - 非推奨:
int a[][]; - 混乱の元:
int[] a[];
初期化のバリエーション
new int[2][3]{ {1,2}, {3,4} }new int[][] { ... }
実務では「型の後ろに [] をまとめる」が基本

decopon
多次元配列は、 「配列の配列」という考え方を持つだけで 一気に理解が深まります。特に宣言方法は複数ありますが、 読みやすさを優先して “型の後ろに [] をまとめる” これだけでコードがぐっと整います。あなたの学びが、次のステップにつながりますように。

moco
多次元配列は“箱の列が並んでる”イメージ。
書き方をそろえると、すごく読みやすくなるよ。

コメント