【Java】2次元配列への代入方法まとめ|初心者向けサンプル付き解説

お疲れ様です。はるさらと申します。

Javaを学んでいると、2次元配列を扱う場面に必ず出会います。
特に「値を代入する方法」が最初の壁になりやすく、
「どうやって代入するの?」「for文を使わないといけない?」と
迷う方も多いのではないでしょうか。

この記事では、Javaの2次元配列への代入方法を、
経験の浅い方にも理解しやすいように整理しました。
基本的な代入方法から実務的な応用例、代替手法まで網羅しています。


2次元配列とは?

まず、2次元配列のイメージを確認しましょう。
1次元配列が「数列」だとすると、
2次元配列は「表(マトリックス)」です。

int[][] array = new int[3][3];

これは3行3列の表を作るイメージです。

  • array[0][0] は左上のセル
  • array[2][2] は右下のセル

このように、行番号と列番号の組み合わせでデータを管理できます。


基本的な代入方法

直接代入

public class BasicAssign {
    public static void main(String[] args) {
        int[][] array = new int[2][2];
        array[0][0] = 10;
        array[0][1] = 20;
        array[1][0] = 30;
        array[1][1] = 40;

        System.out.println(array[0][1]); // 出力: 20
    }
}

行と列を指定すれば、特定の要素に値を代入できます。


まとめて代入(初期化リテラル)

public class LiteralAssign {
    public static void main(String[] args) {
        int[][] array = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        System.out.println(array[2][1]); // 出力: 8
    }
}

初期値がわかっている場合は、このように まとめて代入 する書き方が便利です。


実務での利用例

2次元配列は、表形式のデータや座標管理でよく使われます。

成績表を2次元配列で管理

public class ScoreTable {
    public static void main(String[] args) {
        int[][] scores = new int[3][3];
        // 代入処理
        scores[0][0] = 80; // 学生1の国語
        scores[0][1] = 90; // 学生1の数学
        scores[0][2] = 85; // 学生1の英語

        scores[1][0] = 70; // 学生2の国語
        scores[1][1] = 88; // 学生2の数学
        scores[1][2] = 92; // 学生2の英語

        // 合計を出力
        for (int i = 0; i < scores.length; i++) {
            int sum = 0;
            for (int j = 0; j < scores[i].length; j++) {
                sum += scores[i][j];
            }
            System.out.println("学生" + (i+1) + "の合計: " + sum);
        }
    }
}

成績表のように「行=学生」「列=科目」というデータを扱うのに適しています。


代替手法との比較

2次元配列の代わりに、Listの入れ子 を使う方法もあります。
ArrayList を利用すると柔軟に扱えるので、
実務ではこちらを選ぶことも多いです。

Listでの実装例

import java.util.*;

public class ListExample {
    public static void main(String[] args) {
        List<List<Integer>> list = new ArrayList<>();

        list.add(Arrays.asList(1, 2, 3));
        list.add(Arrays.asList(4, 5, 6));
        list.add(Arrays.asList(7, 8, 9));

        System.out.println(list.get(2).get(1)); // 出力: 8
    }
}

  • 配列 … 固定サイズ、処理が高速
  • List … 可変サイズ、柔軟性が高い

どちらを使うかは要件次第です。


注意点と経験の浅い方が間違えやすいポイント

  1. 範囲外アクセスに注意 int[][] array = new int[2][2]; array[2][0] = 5; // エラー(ArrayIndexOutOfBoundsException)
    配列のサイズを超えて代入するとエラーになります。
  2. ジャグ配列(長さが異なる配列を要素に持つ2次元配列)に注意
    Javaの2次元配列は「配列の配列」です。つまり行ごとにサイズを変えられます。
    int[][] jagged = new int[2][];
    jagged[0] = new int[3];
    jagged[1] = new int[5];
    行ごとに列の数が違うケースがあり、ループ処理の際に注意が必要です。
  3. Listとの混同
    配列とArrayListは使い方が似ていますが、
    代入方法が異なります。間違えて array.add() と書くとエラーになります。

まとめ

この記事では Javaの2次元配列への代入方法 を解説しました。

  • 2次元配列は「表形式のデータ」を表現できる
  • array[row][col] で直接代入可能
  • 成績表や座標管理など実務でも活用される
  • Listを使った代替手法も存在する
  • 範囲外アクセスやジャグ配列の扱いには注意が必要

2次元配列はJavaの基本文法ですが、実務でも役立つ重要な知識です。
ぜひサンプルコードを動かしながら理解を深めてみてください。

どなたかのお役に立てば幸いです。
それではまたー!