多次元配列の初期化

広告

配列の各要素に初期値を設定する方法は次のような書式を使いました。

型名 配列変数名[] = {値1, 値2, ..};

多次元配列の場合は要素に代入される値が別の配列となりますので次のような書式となります。

型名 配列変数名1[] = {値1, 値2, ..};
型名 配列変数名2[] = {値1, 値2, ..};

型名 配列変数名[][] = {配列変数名1, 配列変数名2};

別途作成された配列を値のように記述しています。またさらに次のように記述することもできます。

型名 配列変数名[][] = {{値1_1, 値1_2, ..}, {値2_1, 値2_2, ..}};

具体的には次のように記述します。

int num[][] = {{10, 8, 5}, {9, 16, 4}, {3, 7, 5}};

通常の配列では値をカンマ(,)で区切って記述していましたが多次元配列の場合は値の場所に別の配列を記述しています。これは次のように記述した場合と同じです。

int num[][] = new int[2][3];

num[0][0] = 10;
num[0][1] = 8;
num[0][2] = 5;

num[1][0] = 9;
num[1][1] = 16;
num[1][2] = 4;

num[2][0] = 3;
num[2][1] = 7;
num[2][2] = 5;

Javaではプログラムの途中で空白や改行を入れることができますので、初期値が長くなった場合には例えば次のように記述すると分かりやすいかもしれません。

int num[][] = {
  {10, 8, 5}, 
  {9, 16, 4}, 
  {3, 7, 5}
};

注意点としては通常の配列と同じく必要な要素の分だけ全て値を指定する必要があります。

サンプル

では簡単な例で試しておきます。

JSample8_1.java

class JSample8_1{
  public static void main(String args[]){
    int seiseki[][] = {
      {68, 82, 92},
      {76, 33, 83},
      {92, 45, 38}
    };

    String kurasu[] = {"Aクラス", "Bクラス", "Cクラス"};

    for (int i = 0; i < 3; i++){
      System.out.println(kurasu[i] + "の成績");

      for (int j = 0; j < 3; j++){
        System.out.println(seiseki[i][j]);
      }
    }
  }
}

コンパイル後に実行すると次のように表示されます。

p8-1

( Written by Tatsuo Ikura )