Javaの学習を進めていくと、**「配列の宣言と初期化」**の部分でC言語や他の言語との混同が起きやすくなります。
今回は Bronze レベル(基礎資格試験でもよく狙われる範囲)の問題を題材に、正しい書き方・間違いやすい書き方を整理しましょう。
◆ 問題
次のコードのうち、正しくコンパイル・実行できるものはどれでしょう?
1. String items[] = new String[3];
items[0] = "apple";
items[1] = "banana";
items[2] = "orange";
2. String[] tools;
tools = { "hammer", "saw", "nail" };
3. String[] langs = new String[] { "Java", "Python", "C++" };
◆ 解答
正しいのは 1 と 3
◆ 解説
✦ 1. String items[] = new String[3];
これは「サイズを指定して空配列を作成」する正しい宣言方法。
Javaでは 型[] 変数名 でも 型 変数名[] でも許可されます。
✦ 2. tools = { "hammer", "saw", "nail" };
この書き方は エラー になります。
{ ... } の短縮初期化は「変数宣言と同時に」しか使えません。
例:
String[] tools = { "hammer", "saw", "nail" }; // OK
すでに宣言した変数に後から代入する場合は、必ず new String[] を付ける必要があります。
✦ 3. String[] langs = new String[] { "Java", "Python", "C++" };
宣言と同時に初期化する正しい形式。
new String[] { ... } は「宣言時」でも「代入時」でも使えるため、最も汎用性の高い書き方です。
◆ 学習のまとめ
配列は 型[] 変数名 でも 型 変数名[] でも宣言可能。
{ ... } の短縮形は「宣言と同時」の場合のみ有効。
後から代入する場合は必ず new 型[] { ... } と書く。
Bronze 試験でも配列の宣言・初期化はよく問われる範囲です。