配列の要素を初期化する方法
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
1 | package jp.co.f1.intro.ch9; |
3 | public class ArrayInitializer { |
5 | public static void main(String[] args) { |
7 | // 住居年数を管理する為の配列変数の宣言と要素の作成 |
8 | int[] kandaMansion1 = new int[3]; |
13 | kandaMansion1[2] = 10; |
15 | System.out.println(" - 神田マンション1号棟の移住年数 - "); |
16 | System.out.println("0号室 : " + kandaMansion1[0]); |
17 | System.out.println("1号室 : " + kandaMansion1[1]); |
18 | System.out.println("2号室 : " + kandaMansion1[2]); |
22 | // 住居年数を管理する為の配列変数の宣言と要素の初期化 |
23 | int[] kandaMansion2 = { 3, 1, 10 }; |
25 | System.out.println(" - 神田マンション2号棟の移住年数 - "); |
26 | System.out.println("0号室 : " + kandaMansion2[0]); |
27 | System.out.println("1号室 : " + kandaMansion2[1]); |
28 | 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 配列の要素の値の変更