[ Java ] 配列の宣言と初期化を行うサンプルコード

Pocket

ここでは、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]
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *