配列修羅道:Step04

配列修羅道:Step04 learn

商品名を ArrayList に格納せよ

問題を見る(javadrillへ)


問題のポイント

配列から ArrayList へ変換し、繰り返し処理で表示する。
ここで初めて登場するのが ArrayList<String>
配列とは異なり、要素の追加や削除が自由にできるリスト構造だ。

「配列からリストへ」というのは、データ構造をどう扱うかという視点を学ぶチャンス。
単なる変換ではなく、「なぜリストを使うのか」を意識しろ。


まず、日本語で考えろ

  • 文字列の配列(商品名)が渡される
  • それを ArrayList<String> に変換する
  • リストの中身を1行ずつ出力する

コメントを書け

// 空のリストを作る
// 配列をループで回す
// 各要素をリストに追加する
// リストをループで回して出力する

コメントに従ってコードを書け

import java.util.ArrayList;

public static void convertAndPrintList(String[] names) {
    // 空のリストを作る
    ArrayList<String> list = new ArrayList<>();

    // 配列をループで回す
    for (int i = 0; i < names.length; i++) {
        // 各要素をリストに追加する
        list.add(names[i]);
    }

    // リストをループで回して出力する
    for (int i = 0; i < list.size(); i++) {
        System.out.println(list.get(i));
    }
}

コードの解説

ArrayList<String> list = new ArrayList<>();
空のリストを作成。あとから追加・削除ができる柔軟な構造。

list.add(names[i]);
配列の i 番目の要素をリストに追加する。順番はそのまま。

list.get(i)
リストから要素を取得する方法。配列の [] と違い、.get() メソッドを使う。

list.size()
リストの長さを取得するメソッド。配列の .length とは使い方が異なる


つまづきやすいポイント

配列とリストの違いにちゃんと気づけてるか?

  • 配列: サイズが固定。stocks.length で長さ、stocks[i] でアクセス
  • リスト: サイズが可変。.size() で長さ、.get(i) でアクセス

配列のつもりで list[i] と書いてコンパイルエラー──初学者あるある。
まったく同じように見えて、中身の構造も書き方も違う。

あと、忘れがちなのがインポート。
ArrayList を使うなら import java.util.ArrayList; をファイルの先頭に忘れずに。

teshのひとこと

配列とリストの違いって、何だと思う?

それはな、「要素の数をあとから変えられるかどうか」だ。
配列は「ここに5個」って最初に決めたら、それ以上は変えられねぇ。
でもリストは、「あとで増えるかもしれない」って前提でつくられてる。

だから、「決まったものをどう処理するか」じゃなくて、 「変化をどう受け入れるか」を考えられるかどうかで、おまえの設計が変わる。

Just keep typing, baby.
構造が変わるとき、おまえの思考も変わっていく


👉 配列修羅道:全体のステップ構成はこちら

他のステップや学習順序を確認したい場合は、
[配列修羅道:全体のステップ構成] をチェックしてくれ。