私が新入社員研修で「Java」について学習していく中で一番最初に難しいと感じたのが今回のテーマである「2次元(多次元)配列」でした。
この2次元配列って配列の中に配列が入っているんですけど、少しイメージが掴みにくくて当時はとても難しかったです。
今回は、この「2次元配列」の解説と使用例について記事を書いていきます。
目次
2次元配列の宣言と初期化
2次元配列の宣言
2次元配列とは配列の中に配列を格納できるデータ構造で「行」と「列」の形式でデータを整理することができるようになります。
// int[][] array = new int[行の数][列の数];
int[][] array = new int[3][2];
上記は3行2列の配列を作成していおり、実際に用意される配列は下記のようになります。
[
[0, 0],
[0, 0],
[0, 0]
]
2次元配列の値の代入
2次元配列の要素に値を代入する場合には、「行」と「列」を指定します。
array[0][0] = 5; // 1行目1列目に5を代入
array[2][1] = 7; // 3行目2列目に7を代入
上記コードを実行すると配列の中身の要素は下記のようになります。
[
[5, 0],
[0, 0],
[0, 7]
2次元配列の初期化
2次元配列を宣言と同時に初期化したい場合、以下のように値を直接指定することができます。
int[][] array = {
{1, 2},
{3, 4},
{5, 6}
};
上記コードを実行して作成される2次元配列は下記のようになります。
[
[1, 2],
[3, 4],
[5, 6]
]
2次元配列のループ処理
配列の全要素を取り出したい場合には「for文」を使ったループ処理を行います。
int[][] array = {
{1, 2},
{3, 4},
{5, 6}
};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
外側の「for文」が行をループさせていて、内側の「for文」で列をループさせています。
上記コードを実行すると下記のような出力が得られます
1 2
3 4
5 6
2次元配列の使用例
使用例として、今回はこの2次元配列を使って「3*3マス」のゲーム盤を作成します。
// 3x3のゲーム盤を表す2次元配列を作成
char[][] board = new char[3][3];
// ゲーム盤を初期化(すべてのマスを'-'で埋める)
for (int i = 0; i < board.length; i++) {
for (int j = 0; j < board[i].length; j++) {
board[i][j] = '-';
}
}
// 任意の場所にプレイヤーのコマ(例: 'X')を置く
board[1][1] = 'X';
上記コードでは「3行」*「3列」のゲーム盤を全てのマスに「-」が入った状態で作成しています。
そしてそのゲーム盤の中の「行」と「列」を指定することで任意の場所にプレイヤーのコマを置くことができます。
このように2次元配列を使用することでゲーム盤を作成することができ、これを応用すると、シンプルな○×ゲームやオセロのようなボードゲームを実装することができるようになります。
コメント