今回の記事ではJavaの多次元配列についてわかりやすく解説します。
Javaでは様々なデータを配列として管理することができます。
多次元配列は配列の要素として配列が入っているもののことです。
例えば、配列の要素の中に配列が入っているものを2次元配列と言います。
さらに配列の要素の中に配列が入っていて、そこにさらに配列が格納されているものを3次元配列などと言ったりすることがあります。
この記事ではそんな2次元配列や3次元配列について、宣言する方法や値を格納する方法、値を取り出す方法について解説していきます。
是非最後まで読んでいってください!
2次元配列をわかりやすく解説
まずは多次元配列を宣言する方法について解説します。
2次元配列の宣言
二次元配列は次のように宣言することができます。
データ型[][] 配列名;
配列名 = new データ型[要素数][要素数];
また無理に2行に分けることなく、1行で宣言することも可能です。
データ型[][] 配列名 = new データ型[要素数][要素数];
さらに2つ目の配列の要素数はバラバラでも良いため、次のように別の要素数を指定して宣言することも可能です。
データ型[][] 配列名 = new データ型[2][];
配列名[0] = new データ型[3];
配列名[1] = new データ型[5];
サンプルコード
では実際に2次元配列を宣言するサンプルコードを確認してみましょう。
今回は一番シンプルな宣言方法を使っています。
// int型の2次元配列の宣言
int[][] numArray = new int[2][3];
2次元配列に値を代入する
2次元配列に値を代入する際には普通の配列と同じようにインデックスを指定します。
ただ、指定するインデックスが2つになります。
配列名[インデックス][インデックス] = 値
例えば、1番目の配列の3番目の要素に値を格納したいときは次のように書きます。
配列名[0][2] = 値
サンプルコード
実際に値を格納するサンプルを確認してみましょう。
public class ArrayTest {
public static void main(String[] args) {
// int型の配列の宣言
int[][] numArray = new int[2][3];
// 各要素に値を格納していく
numArray[0][0] = 1;
numArray[0][1] = 2;
numArray[0][2] = 3;
numArray[1][0] = 4;
numArray[1][1] = 5;
numArray[1][2] = 6;
}
}
2次元配列から値を取り出す
では2次元配列に値を格納したので、次は2次元配列から値を取り出してみましょう。
取り出す方法も値を格納するときと同じようにインデックスを指定して、取り出します。
変数名 = 配列名[インデックス][インデックス]
サンプルコード
サンプルで確認してみましょう。
public class ArrayTest {
public static void main(String[] args) {
// int型の配列の宣言
int[][] numArray = new int[2][3];
// 各要素に値を格納
numArray[0][0] = 1;
numArray[0][1] = 2;
numArray[0][2] = 3;
numArray[1][0] = 4;
numArray[1][1] = 5;
numArray[1][2] = 6;
// 特定の要素を取り出す
int num = numArray[1][1];
System.out.println(num); // 5が出力される
}
}
3次元配列をわかりやすく解説
続いて3次元配列についてサンプルコードを用いながらわかりやすく解説していきます。
3次元配列の宣言
3次元配列の宣言も2次元配列と同じ要領ですることができます。
まずはオーソドックスな宣言です。
配列名を宣言し、その後new演算子を使って3次元配列を生成します。
データ型[][][] 配列名;
配列名 = new データ型[要素数][要素数][要素数];
2次元配列と同じように3次元配列も1行で宣言することが可能です。
データ型[][][] 配列名 = new データ型[要素数][要素数][要素数];
さらに2次元配列と同じように最初の要素数だけnew演算子で生成する際に指定しておけば、残りの要素数は後から指定することができます。
データ型[][][] 配列名;
配列名 = new int[2][][];
配列名[0] = new int[2][2];
配列名[1] = new int[2][2];
サンプルコード
では実際にサンプルで3次元配列を宣言してみましょう。
// int型の配列の宣言
int[][][] numArray = new int[2][2][2];
3次元配列に値を代入
次は3次元配列に値を代入する方法です。
3次元配列に値を代入する際も配列や2次元配列と同じように、インデックスを指定して、値を代入します。
配列名[インデックス][インデックス][インデックス] = 値;
サンプルコード
実際にサンプルで確認します。
配列の要素数が2、2、2、の3次元配列を宣言しました。
順番に値を格納しました。
public class ArrayTest {
public static void main(String[] args) {
// int型の配列の宣言
int[][][] numArray = new int[2][2][2];
// 各要素に値を格納
numArray[0][0][0] = 1;
numArray[0][0][1] = 2;
numArray[0][1][0] = 3;
numArray[0][1][1] = 4;
numArray[1][0][0] = 5;
numArray[1][0][1] = 6;
numArray[1][1][0] = 7;
numArray[1][1][1] = 8;
}
}
3次元配列から値を取り出す
最後に3次元配列から値を取り出してみましょう。
こちらも今までと同じようにインデックスを指定して、値を取り出すことができます。
変数名 = 配列名[インデックス][インデックス][インデックス];
サンプルコード
実際のコードで確認してみましょう。
要素数が2、2、2の3次元配列から値を取り出してみます。
public class ArrayTest {
public static void main(String[] args) {
// int型の配列の宣言
int[][][] numArray = new int[2][2][2];
// 各要素に値を格納
numArray[0][0][0] = 1;
numArray[0][0][1] = 2;
numArray[0][1][0] = 3;
numArray[0][1][1] = 4;
numArray[1][0][0] = 5;
numArray[1][0][1] = 6;
numArray[1][1][0] = 7;
numArray[1][1][1] = 8;
// 特定の要素を取り出す
int num = numArray[1][0][0];
System.out.println(num); // 5が出力される
}
}
まとめ
今回はJavaの多次元配列について解説しました。
多次元配列は、配列の要素の中に配列が格納されているものです。
多次元配列の2次元配列や3次元配列についてそれぞれ宣言の方法や値の代入の仕方、取り出し方について解説しました。
この記事が少しでも参考になれば幸いです。
Twitterをやっているので、何か質問等あれば、DMにてお気軽にご連絡ください!