ここでは、Java における配列の初期化方法についていくつかのサンプルコードを示します。まずは間違った初期化を見てみます。
スポンサーリンク
Java で間違った配列の宣言
配列の宣言を以下のように記述すると Java ではコンパイルエラーとなるので誤りです。
// 要素数10のint型の配列を宣言する(コンパイルエラーとなる) int[10] intArray;
// コンパイル結果
E:\>javac example.java
example.java:7: エラー: ‘]’がありません
int[10] intArray;
^
example.java:7: エラー: 文ではありません
int[10] intArray;
^
example.java:7: エラー: 式の開始が不正です
int[10] intArray;
^
エラー3個
正しい配列の宣言と初期化の方法
正しくは以下のように配列の宣言と初期化を行います。
int[] intArray; // 型宣言 intArray = new int[10]; // 要素数の確定 // 要素値を代入 intArray[0] = 0; intArray[1] = 1; intArray[2] = 2; intArray[3] = 3;
なお、一度に要素値を初期値として設定したい場合は、以下のような記述を行うこともできます。
// import java.util.Arrays; // 要素数3の配列と要素の初期化を行う String[] strArray = new String[]{"apple", "orange", null}; // Arrays.toString は配列の要素を出力する System.out.println(Arrays.toString(strArray)); // 出力結果 // [apple, orange, null] // なお、以下のように new 演算子を省略して記述することも可能 String[] strArray = {"apple", "orange", null};
全要素の初期値を一括で同じ値を設定
C 言語で言えば memset に雰囲気が似ているでしょうか?違うと言えば全く違いますので何とも言えませんが。memset が分からないという方は読み飛ばしていただいてOKです。無駄に混乱するだけだと思います。
結論:雰囲気も似ていない
int[] intArray = new int[5]; String[] strArray = new String[5]; // import java.util.Arrays; // 要素を指定した値で初期化する // すでに値が入っている場合でも上書きされる Arrays.fill(strArray, "abc"); Arrays.fill(intArray, 100); System.out.println(Arrays.toString(strArray)); System.out.println(Arrays.toString(intArray)); // 出力結果 //---------------------------------------------- // [abc, abc, abc, abc, abc] // [100, 100, 100, 100, 100]