
Java入門|多次元配列でデータを表のように扱う
配列を表のように使いこなす!多次元配列でデータ整理をレベルアップ
これまで扱ってきた配列は、横一列に並んだデータを管理するものでした。たとえば、テストの点数や1週間の記録など、「1つの並び」で表現できるデータに向いていましたね。
しかし実際のプログラムでは、「行と列」で表されるデータも多く登場します。たとえば、
- 生徒 × 科目の点数
- 商品 × 月ごとの売上
- 行列データ
このようなデータを扱うときに便利なのが、多次元配列です。
多次元配列を使うと、データを「表(テーブル)」のように扱えるようになります。ここでは、2次元配列を中心に、その仕組みと使い方をわかりやすく解説していきます。
多次元配列とは何か
多次元配列は、「配列の中に配列を入れる」ことで作られます。
つまり、配列の要素そのものが配列になっている構造です。
たとえば、1次元配列はこのような形でした。
10 20 30 40一方、2次元配列は次のようなイメージになります。
10 20 30
40 50 60これは「行」と「列」を持つデータ構造で、表のように扱えます。
2次元配列の基本的な書き方
2次元配列は、次のように宣言します。
型名[][] 配列名;そして、要素を確保するときはこう書きます。
配列名 = new 型名[行数][列数];たとえば、3行4列の配列ならこうなります。
int[][] data;
data = new int[3][4];この場合、合計で 3 × 4 = 12 個の値を格納できます。
多次元配列のイメージを図で確認しよう

この図では、2次元配列が「表のように並んだ箱」であることを表しています。
1つ目の添字が「行」、2つ目の添字が「列」を表しています。
2次元配列の基本的な使い方
では、実際にプログラムで使ってみましょう。
ここでは「3人の生徒 × 2科目の点数」を扱う例にします。
ファイル名:Sample11.java
class Sample11
{
public static void main(String[] args)
{
int[][] score;
score = new int[2][3]; // 科目×人数の配列を準備
// 国語の点数
score[0][0] = 70;
score[0][1] = 85;
score[0][2] = 60;
// 英語の点数
score[1][0] = 80;
score[1][1] = 75;
score[1][2] = 90;
for(int i = 0; i < 3; i++){
System.out.println((i+1) + "人目の国語は " +
score[0][i] + "点です。");
System.out.println((i+1) + "人目の英語は " +
score[1][i] + "点です。");
}
}
}実行結果
1人目の国語は 70点です。
1人目の英語は 80点です。
2人目の国語は 85点です。
2人目の英語は 75点です。
3人目の国語は 60点です。
3人目の英語は 90点です。添字の意味を整理しよう
2次元配列では、添字が2つあります。
| 書き方 | 意味 |
|---|---|
| score[0][0] | 1科目目・1人目 |
| score[0][1] | 1科目目・2人目 |
| score[1][0] | 2科目目・1人目 |
つまり、
- 1つ目の添字 → 行(種類)
- 2つ目の添字 → 列(データ)
と考えると理解しやすいです。
多次元配列はまとめて書くこともできる
1次元配列と同じように、2次元配列もまとめて初期化できます。
int[][] score = {
{70, 85, 60},
{80, 75, 90}
};この書き方では、
- 1行目 → 国語
- 2行目 → 英語
というように、データのまとまりが見やすくなります。
行ごとに長さが違う配列も作れる
Javaの多次元配列は、すべての行の長さが同じでなくても問題ありません。
たとえば、次のような配列も作れます。
int[][] data = {
{10, 20, 30},
{40, 50},
{60, 70, 80, 90}
};このような配列は、行ごとに要素数が違います。
配列の長さを確認する方法
多次元配列では、length の使い方が少し変わります。
| 書き方 | 意味 |
|---|---|
| data.length | 行の数 |
| data[i].length | i行目の列の数 |
この違いはとても重要です。
行ごとの長さを確認するプログラム
では、行ごとの長さを調べるプログラムを見てみましょう。
ファイル名:Sample12.java
class Sample12
{
public static void main(String[] args)
{
int[][] data = {
{10, 20, 30},
{40, 50},
{60, 70, 80, 90}
};
for(int i = 0; i < data.length; i++){
System.out.println((i+1) +
"行目の要素数は " + data[i].length + " 個です。");
}
}
}実行結果
1行目の要素数は 3 個です。
2行目の要素数は 2 個です。
3行目の要素数は 4 個です。多次元配列のポイント整理
ここまでの内容を整理すると、次のようになります。
| ポイント | 内容 |
|---|---|
| 多次元配列 | 配列の中に配列がある構造 |
| 2次元配列 | 表のように扱える |
| 添字 | 2つ使う(行と列) |
| 初期化 | {} をネストして書く |
| length | 行と列で使い分ける |
多次元配列は「表」を扱うための強力な道具
多次元配列を使うと、これまで1列でしか扱えなかったデータを、行と列の構造で整理できるようになります。
たとえば、
- 生徒ごとの科目別成績
- 商品ごとの売上データ
- 表形式のデータ
こうした情報を自然な形で表現できます。
配列の考え方に「もう1つ次元を追加する」だけで、扱えるデータの幅が大きく広がります。ここまで理解できれば、配列の扱いはかなり実践的なレベルに近づいてきています。
