多次元配列

今までの配列は一列に並んだ箱のようなイメージでした。
しかし、javaでは配列の要素の中にさらに配列にすることができます。
これが、多次元配列です。
多次元配列も一元配列同様に同じデータ型のデータしか扱うことができません。
イメージ的にはこのようになります。

つまり、上の図で説明すると、これが2次元配列になります。
まず、 int 型の ary には 配列の要素が2つあります。0 と 1 です。
その 配列 0 の中にさらに配列の要素として配列0には 0 1 2 があり、配列 1の中にも
0 1 2 があります。
2次元配列の宣言方法は考え方としては1次元配列とまったく同じです。
ただし、これが配列であると表す [] が 2つ書かなければいけません。

つまり書き方としては

int ary[][] = new int[2][3];
または
int[] ary[] = new int[2][3];

と書きます。
また、要素番号は0から始まります。
つまり、要素数を取り出すときは、

ary[0][0];
ary[0][1];
ary[0][2];
ary[1][0]:
ary[1][1];
ary[1][2];

となります。
では、サンプルプログラムを見ていきます。

サンプルプログラム(Sample57.java)

class Sample57{
    public static void main(String args[]){

  int test[][] = new int[3][4];

 //国語のテスト結果
   test[0][0] = 40;
   test[0][1] = 57;
   test[0][2] = 16;
   test[0][3] = 75;

//数学のテスト結果
   test[1][0] = 93;
   test[1][1] = 54;
   test[1][2] = 51;
   test[1][3] = 100;

 //英語のテスト結果
   test[2][0] = 29;
   test[2][1] = 43;
   test[2][2] = 65;
   test[2][3] = 71;


  System.out.println("秋山君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][0]);
  System.out.println("数学のテスト結果は" + test[1][0]);
  System.out.println("英語のテスト結果は" + test[2][0]);

  System.out.println("---------------------");
  System.out.println("成田君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][1]);
  System.out.println("数学のテスト結果は" + test[1][1]);
  System.out.println("英語のテスト結果は" + test[2][1]);

  System.out.println("---------------------");
  System.out.println("山田君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][2]);
  System.out.println("数学のテスト結果は" + test[1][2]);
  System.out.println("英語のテスト結果は" + test[2][2]);

  System.out.println("---------------------");
  System.out.println("吉田君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][3]);
  System.out.println("数学のテスト結果は" + test[1][3]);
  System.out.println("英語のテスト結果は" + test[2][3]);

    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

このようになります。
要領をつかめばそんなに難しくないと思います。

多次元配列の初期化

多次元配列も一元配列と同様に初期化をすることができます。
上のサンプルプログラムを初期化してみます。

サンプルプログラム(Sample57_1.java)

class Sample57_1{
    public static void main(String args[]){

  int test[][] = {{40,57,16,75},{93,54,51,100},{29,43,65,71}};

  System.out.println("秋山君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][0]);
  System.out.println("数学のテスト結果は" + test[1][0]);
  System.out.println("英語のテスト結果は" + test[2][0]);

  System.out.println("---------------------");
  System.out.println("成田君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][1]);
  System.out.println("数学のテスト結果は" + test[1][1]);
  System.out.println("英語のテスト結果は" + test[2][1]);

  System.out.println("---------------------");
  System.out.println("山田君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][2]);
  System.out.println("数学のテスト結果は" + test[1][2]);
  System.out.println("英語のテスト結果は" + test[2][2]);

  System.out.println("---------------------");
  System.out.println("吉田君のテスト結果");
  System.out.println("国語のテスト結果は" + test[0][3]);
  System.out.println("数学のテスト結果は" + test[1][3]);
  System.out.println("英語のテスト結果は" + test[2][3]);

    }

}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行すると以下のようになります。
このように初期化することでプログラムをシンプルに記述することもできます。
もちろん出力結果は同じになります。

ページのトップへ戻る