配列は、いくつもの同じ名前のついたハコに、入れたい物(オブジェクト)を入れることができ、そのハコをうまく扱うことによってデータの扱いが簡単に出来るようになります。
配列の構文にはいくつかの書き方があります。
「配列の宣言」と「要素の確保」を行う構文の例です。
型名 変数名 [] = { 値1 , 値2 , 値3 , ・・・} ;
「配列の宣言」だけを行い「要素の確保」は、後で処理するという構文の例です。
型名 変数名 [ ] = new 型名 [要素数] ;
上記のように配列の作成と、値の代入については分けて行うこともできます。代入する時は「添字」をつけることを注意しなければいけません。配列は、データを扱うときに「添字」を使ってデータの番号を指定しないと、データを扱うことはできません。
一次元の配列が一人の生徒の複数のテストの点数を管理出来るプログラムだと考えると、多次元の配列は複数の生徒の複数のテストの点数を管理出来るプログラムになります。以下の構文が二次元の配列の場合の構文の例です。
型名 変数名 [ ] [ ] = new 型名 [添字] [添字] ;
構文の例:多次元の配列の作成(二次元の場合)
使用例:多次元の配列(二次元の場合)の作成
int test [][] = new test[3][3] ;
これで3*3の要素数をもつ多次元配列になる。
構文の例:多次元配列(二次元の場合)の代入
変数名 [添字] [添字] = 値 ;
使用例:多次元配列(二次元の場合)の代入
test [0][0] = 5 ; test [0][1] = 3 ; test [0][2] = 4 ;
1人の生徒のテストの点数を表示するプログラムの例。
public class HairetuTest { public static void main(String[] args) { // テストの点数を入れる配列を定義する。 int test[] = new int[3]; // テストの点数を配列に入れる。 test[0] = 80; // 国語の点数 test[1] = 90; // 社会の点数 test[2] = 95; // 数学の点数 //テストの点数を表示する。 System.out.println(" 国語 = " + test[0]); System.out.println(" 社会 = " + test[1]); System.out.println(" 数学 = " + test[2]); } }
実行結果は以下のようになります。
国語 = 80 社会 = 90 数学 = 95
二人の生徒のテストの点数を表示するプログラムの例
int test [][] = new test[2][3] ;これで2*3の要素数をもつ多次元配列になる。
public class HairetuTest { public static void main(String[] args) { int test[][] = new int[2][3]; test[0][0] = 50; //国語 test[0][1] = 45; //社会 test[0][2] = 36; //数学 test[1][0] = 80; //国語 test[1][1] = 72; //社会 test[1][2] = 84; //数学 System.out.println("一人目のテスト結果は、国語 " + test[0][0] + " 社会 " + test[0][1] + " 数学 " + test[0][2]); System.out.println("二人目のテスト結果は、国語 " + test[1][0] + " 社会 " + test[1][1] + " 数学 " + test[1][2]); } }
一人目のテスト結果は、国語 50 社会 45 数学 36 二人目のテスト結果は、国語 80 社会 72 数学 84
いくつもの同じ名前がついたハコに番号をつけ、入れたい物(オブジェクト)を入れることができ、そのハコをうまく扱うことによってデータの扱いが簡単にできるようになる。
プリミティブ型であっても参照型であっても配列にできる。
配列の要素数を知りたいときに、length を使うと要素数を知ることできる。
構文の例:配列の長さ
変数名 . lengthこのように配列の変数名に対して length を使うと配列の長さを知ることができる。
for ( int index = 0 ; index < test.length ; index ++){ System.out.printin( test [ index ] ) ; }このプログラムを実行すると配列 test に入っている値を全て出力することができる。