004-005-009
配列リテラルで初期化する
中級
問題説明
配列リテラル:簡潔な初期化
配列リテラルを使うと、宣言と初期化を1行で行え、コードがより読みやすく保守しやすくなります。既知の値で配列を初期化する際の推奨方法です。
一緒に配列リテラルの便利な使い方を学んでいきましょう!
学習目標
学習ポイント
- 配列リテラル構文:
型[] 名前 = {v1, v2, v3} - 自動サイズ決定: 配列の長さは値の数で決定
- 宣言時のみ使用可能: リテラルは宣言時にのみ動作
- 拡張for文: 配列を反復する最もシンプルな方法
配列リテラルの構文
型[] 配列名 = {値1, 値2, 値3};複数ステップ初期化との比較
| 配列リテラル(推奨) | 複数ステップ(冗長) |
|---|---|
| |
よくある間違い
間違えても大丈夫です。もう一度構文を確認してみてください。
間違い1: 再代入でリテラルを使用
誤ったコード:
String[] fruits;
fruits = {"Apple", "Banana"}; // コンパイルエラー!正しいコード:
String[] fruits;
fruits = new String[]{"Apple", "Banana"}; // new 型[]{}を使用間違い2: リテラル内で型を混在
誤ったコード:
Object[] mixed = {1, "two", 3.0}; // 動作するが型安全性を失うより良いコード:
int[] numbers = {1, 2, 3}; // 同種の型を推奨拡張for文(for-each)
for (String fruit : fruits) {
System.out.println(fruit);
}利点: インデックス変数不要、オフバイワンエラーなし、クリーンなコード。
制限: 反復中に配列を変更したりインデックスにアクセスできない。
それぞれのスタイルを使う場面
- 配列リテラル: コンパイル時に値が既知
- new 型[サイズ]: 動的サイズ、後で値を設定
- 拡張for: 読み取り専用の反復
- 従来のfor: インデックスや変更が必要
前提知識の詳細説明
この問題を解くために必要な知識を確認しましょう。
基本概念
この問題で扱うプログラミングの基本概念を理解することが、正しい解答への第一歩です。コードの各要素がどのように連携して動作するかを把握しましょう。
実装アプローチ
問題を解くための考え方を段階的に整理します:
- 問題文を読み、入力と出力の関係を理解する
- 必要な変数やデータ構造を特定する
- 処理の流れを組み立てる
- テストケースで動作を確認する
