多次元配列

配列の配列(多次元配列という)を作ることもできます。これは、行列を表現するときなどに使えます。

多次元配列の作成

int[][] matrix = new int[10][10];

これで、10行10列の配列が作成されました。

3次元の行列にするときは、int[][][]のように[]を3回繰り返します。

多次元配列の操作

多次元配列では、

matrix[3][4]

という形式では、行列の3行4列目のデータを表します。

たとえば、5×5の行列の足し算は、次のようなプログラムになります。

int col = 5, row = 5;
int[][] m1 = new int[row][col];
int[][] m2 = new int[row][col];
int[][] m3 = new int[row][col];

// 適当な値で行列を初期化
for(int i = 0; i < row; i++){
   for(int j = 0; j < col; j++){
      m1[i][j] = i + j;
      m2[i][j] = i - j;
   }
}

// 足し算
for(int i = 0; i < row; i++){
   for(int j = 0; j < col; j++){
      m3[i][j] = m1[i][j] + m2[i][j];
   }
}

同様に,行列の掛け算などの演算も試してみてください。

多次元配列の初期化

配列の定数による初期化では次のようにカッコを重ねます。

int[][] m = {{1, 2}, {3,4}};

// 結果
// m[0][0] = 1
// m[0][1] = 2
// m[1][0] = 3
// m[1][1] = 4
// m[0] = {1, 2}
// m[1] = {3, 4}

2次元配列を参照する時に添字を1つだけにすると、一次元の配列(行列の行)が得られます。