お疲れ様です。はるさらと申します。
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 … 可変サイズ、柔軟性が高い
どちらを使うかは要件次第です。
注意点と経験の浅い方が間違えやすいポイント
- 範囲外アクセスに注意
int[][] array = new int[2][2]; array[2][0] = 5; // エラー(ArrayIndexOutOfBoundsException)
配列のサイズを超えて代入するとエラーになります。 - ジャグ配列(長さが異なる配列を要素に持つ2次元配列)に注意
Javaの2次元配列は「配列の配列」です。つまり行ごとにサイズを変えられます。
int[][] jagged = new int[2][];jagged[0] = new int[3];jagged[1] = new int[5];
行ごとに列の数が違うケースがあり、ループ処理の際に注意が必要です。 - Listとの混同
配列とArrayListは使い方が似ていますが、
代入方法が異なります。間違えてarray.add()と書くとエラーになります。
まとめ
この記事では Javaの2次元配列への代入方法 を解説しました。
- 2次元配列は「表形式のデータ」を表現できる
array[row][col]で直接代入可能- 成績表や座標管理など実務でも活用される
- Listを使った代替手法も存在する
- 範囲外アクセスやジャグ配列の扱いには注意が必要
2次元配列はJavaの基本文法ですが、実務でも役立つ重要な知識です。
ぜひサンプルコードを動かしながら理解を深めてみてください。
どなたかのお役に立てば幸いです。
それではまたー!




































