【Java】2次元配列を一括初期化する方法まとめ|初心者向けサンプル付き解説

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

Javaでプログラミングをしていると、
2次元配列をまとめて初期化したい場面は多く出てきます。

例えば、表データを持たせたいときや、
固定の値を最初から入れておきたいときなどです。
しかし、2次元配列の初期化は「new」で宣言するだけではなく、
一括で値を設定する方法もあり、
経験の浅い方は混乱しやすいポイントでもあります。

この記事では、Javaの2次元配列を一括で初期化する方法
サンプルコード付きで解説します。

基本的な書き方から実務でよく使うケース、
代替手法との比較まで幅広く取り上げますので、ぜひ参考にしてください。


2次元配列を一括初期化する方法の基本

まずは基本となる書き方から見ていきましょう。
Javaの2次元配列は、以下のように宣言と同時に一括初期化できます。

public class ArrayInitExample {
    public static void main(String[] args) {
        // 2次元配列を一括で初期化
        int[][] numbers = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        // 出力確認
        for (int i = 0; i < numbers.length; i++) {
            for (int j = 0; j < numbers[i].length; j++) {
                System.out.print(numbers[i][j] + " ");
            }
            System.out.println();
        }
    }
}

このコードでは、宣言と同時に値を代入しているため、
後からnumbers[0][0] = 1;のように個別代入する必要がありません。
表形式のデータや固定値を持たせたい場合には、
最もシンプルで分かりやすい方法です。


実務でよくある2次元配列の初期化パターン

業務でコードを書くと、単純な数値だけでなく、
初期データや文字列を持つ配列を一括初期化したいケースがあります。

例えば、テーブルに初期データを用意する場合は以下のように記述できます。

public class EmployeeTable {
    public static void main(String[] args) {
        // 社員データを一括初期化
        String[][] employees = {
            {"001", "田中", "営業"},
            {"002", "佐藤", "開発"},
            {"003", "鈴木", "総務"}
        };

        // 出力確認
        for (String[] emp : employees) {
            System.out.println("ID: " + emp[0] + ", 名前: " + emp[1] + ", 部署: " + emp[2]);
        }
    }
}

このように、2次元配列を使うと
表形式のデータをそのままコードに埋め込むことができます。
特に小規模な設定値やテストデータを扱う場合に便利です。


代替手法との比較:ArrayListやListの利用

ただし、実務では**ArrayListやList<List<>>**を使うケースも多くあります。
なぜなら、配列はサイズが固定されるため、
後から柔軟に追加や削除ができないからです。

以下は、ArrayListを使った例です。

import java.util.*;

public class ListExample {
    public static void main(String[] args) {
        // ArrayListで2次元配列の代替
        List<List<String>> employees = new ArrayList<>();
        employees.add(Arrays.asList("001", "田中", "営業"));
        employees.add(Arrays.asList("002", "佐藤", "開発"));
        employees.add(Arrays.asList("003", "鈴木", "総務"));

        for (List<String> emp : employees) {
            System.out.println("ID: " + emp.get(0) + ", 名前: " + emp.get(1) + ", 部署: " + emp.get(2));
        }
    }
}

この方法を使うと、後から柔軟にデータを追加できるため、
実務ではこちらが好まれることも多いです。
ただし、固定データを一括初期化したいだけなら配列で十分なケースもあるので、
目的に応じて使い分けましょう。


注意点:初心者が間違えやすいポイント

2次元配列を一括初期化する際、経験の浅い方がよくつまずくポイントをまとめます。

  1. サイズを同時に指定しない int[][] arr = new int[3][3] {{1, 2, 3}, {4, 5, 6}}; // コンパイルエラー
    → 一括初期化する場合はnew int[3][3]のようにサイズを指定せず、
    直接{}で値を並べます。
  2. 長さの不揃いな配列(ジャグ配列)に注意
    Javaでは、2次元配列の行ごとに列数が異なる「ジャグ配列」も作成可能です。
    int[][] jagged = { {1, 2}, {3, 4, 5}, // 列数が異なる {6} };
    → 意図せず不揃いになるとバグの原因になるため、注意しましょう。
  3. 配列とリストの違いを理解する
    配列はサイズ固定、リストは可変。状況に応じて選択するのが重要です。

関連記事

同じようにJavaでの配列や数値操作に関する記事もまとめています。
合わせて読むと理解が深まります。


まとめ

  • 2次元配列は宣言と同時に一括初期化できる
  • 実務では表形式のデータや初期設定値を埋め込むのに便利
  • 柔軟性が必要な場合は**ArrayListやList<List<>>**を使う選択肢もある
  • サイズ指定やジャグ配列の扱いに注意

経験の浅い方は、まずは配列の一括初期化方法を理解し、
その後にリストとの使い分けを学ぶとスムーズ
です。

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