配列の要素を初期化する方法

9.3 配列の要素を初期化する方法

 配列を宣言する際に、任意の値で初期化することも可能です。その場合は、下記のような構文になります。

図 9.3.1 : 要素の初期化


 この書式では、指定した値の個数分の配列の要素が確保され、その値で初期化されます。
 この書式は、new演算子を使って要素の記憶領域の確保を行い、その後に値を代入する先ほどの書き方と同じです。

要素の初期化の間違った記述

 下記は間違った記述の例です。この記述では、コンパイルエラーが発生します。
 配列変数の宣言と任意の値での初期化は、必ず同時に行わなければなりません。
 int[] kandaMansion;
 kandaMansion = { 3, 1, 10 };

ポイント

 ・ 配列を明示的に初期化すると、配列の宣言・要素の確保・値の代入が同時に行うことができる。

9.3.1 要素作成時に配列を初期化するプログラム

 要素の作成時ではなく後で値を代入する方法と、要素の作成と同時に値を初期化する方法で、2種類の配列を作成します。それぞれの、配列の要素の作成方法を学びましょう。

① ソース・フォルダー      :myproj_intro/src
② パッケージ          :jp.co.f1.intro.ch9
③ 名前             :ArrayInitializer
④ 作成するメソッド・スタブの選択:public static void main(String[] args) にチェックを入れる

➢ ArrayInitializer.java

package jp.co.f1.intro.ch9;

public class ArrayInitializer {

	public static void main(String[] args) {

		// 住居年数を管理する為の配列変数の宣言と要素の作成
		int[] kandaMansion1 = new int[3];

		// 要素の初期化
		kandaMansion1[0] = 3;
		kandaMansion1[1] = 1;
		kandaMansion1[2] = 10;

		System.out.println(" - 神田マンション1号棟の移住年数 - ");
		System.out.println("0号室 : " + kandaMansion1[0]);
		System.out.println("1号室 : " + kandaMansion1[1]);
		System.out.println("2号室 : " + kandaMansion1[2]);

		System.out.println();

		// 住居年数を管理する為の配列変数の宣言と要素の初期化
		int[] kandaMansion2 = { 3, 1, 10 };

		System.out.println(" - 神田マンション2号棟の移住年数 - ");
		System.out.println("0号室 : " + kandaMansion2[0]);
		System.out.println("1号室 : " + kandaMansion2[1]);
		System.out.println("2号室 : " + kandaMansion2[2]);

	}

}

実行結果

解説

 8~13行目は、要素の数のみ指定して要素を作成し、その後で値を代入する方法です。
   8: int[] kandaMansion1 = new int[3];
   11: kandaMansion1[0] = 3;
   12: kandaMansion1[1] = 1;
   13: kandaMansion1[2] = 10;

 16~18行目では、各要素の値を画面に表示しています。各要素には、11~13行目で代入した値が入っています。
   16: System.out.println("0号室 : " + kandaMansion1[0]);
   17: System.out.println("1号室 : " + kandaMansion1[1]);
   18: System.out.println("2号室 : " + kandaMansion1[2]);

 次の記述が、この節で学習した要素の作成と同時に初期化する方法です。図 9.3.2がそのイメージです。
   23: int[] kandaMansion2 = { 3, 1, 10 };

図 9.3.2 : 配列の初期化


 26~28行目では、各要素の値を画面に表示しています。
    26: System.out.println("0号室 : " + kandaMansion2[0]);
   27: System.out.println("1号室 : " + kandaMansion2[1]);
   28: System.out.println("2号室 : " + kandaMansion2[2]);


NEXT>> 9.4 配列の要素の値の変更