配列修羅道:StepFinal

配列修羅道:StepFinal learn

商品在庫管理ミニアプリを完成させよ

問題を見る(javadrillへ)


問題のポイント

パーツを組み合わせて、実際に動く形にする。
ここまでに作ってきたメソッドたち──
printStockList()searchByName()printLowStockProducts()updateStockByName()

これらを統合して、簡易的な在庫管理アプリを完成させる
コード全体を見渡し、「設計された処理の流れ」を感じてくれ。


まず、日本語で考えろ

  • 商品リストを用意して、複数の商品を登録する
  • 商品の一覧を表示する
  • 検索して在庫数を表示する
  • 指定したしきい値未満の商品を抽出する
  • 商品の在庫数を更新する
  • 存在しない商品の検索や更新も試して、エラーハンドリングを確認する

コメントを書け

// 商品リストを作成し、初期データを登録する
// 商品一覧を表示する
// 商品名で検索する
// 在庫数が少ない商品だけを表示する
// 在庫数を更新する
// 存在しない商品の検索・更新も確認する

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

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 商品リストを作成し、初期データを登録する
        ArrayList<Product> products = new ArrayList<>();
        products.add(new Product("りんご", 10));
        products.add(new Product("みかん", 5));
        products.add(new Product("バナナ", 3));

        // 商品一覧を表示する
        System.out.println("== 一覧表示 ==");
        ProductUtil.printStockList(products);

        // 商品名で検索する
        System.out.println("\n== 商品検索 ==");
        ProductUtil.searchByName(products, "みかん");

        // 在庫数が少ない商品を表示する
        System.out.println("\n== 在庫が少ない商品を表示(5未満)==");
        ProductUtil.printLowStockProducts(products, 5);

        // 在庫数を更新する
        System.out.println("\n== 在庫数の更新 ==");
        ProductUtil.updateStockByName(products, "りんご", 15);

        // 存在しない商品の検索・更新を確認する
        System.out.println("\n== 存在しない商品の検索・更新 ==");
        ProductUtil.searchByName(products, "パイナップル");
        ProductUtil.updateStockByName(products, "パイナップル", 10);
    }
}

コードの解説

Step06〜09で書いてきた処理を一気に使っている。
「登録 → 表示 → 検索 → 抽出 → 更新 → エラー確認」
という一連の処理の流れが、1本のコードの中に統合されている。

役割の分離がされていることに注目
Main クラスは「流れの指示」を書くだけ。
実際の処理はすべて ProductUtil に任せている。
この分業が “設計されたコード” の基本形。

メソッドを使い回せる構造
一度定義した printStockList()searchByName() を何度も使っている。
これがメソッドの 再利用性=保守性の高さ を体感できる瞬間。


つまづきやすいポイント

「全部書いたのに動かない」ときは?

  • クラスのインポートが抜けてる
  • スペルミス(特に ProductUtilsetStock
  • main メソッドの括弧や波かっこミス
    冷静に一行ずつ確認しろ。9割は凡ミスだ。

「コード量が多くてムズい」と感じたら?
一度に見ようとするな。
見えてるのは、「これまで積み上げてきたパーツの集合体」だ。
不安になったら、Step06〜09をもう一回見直せ。


teshのひとこと

コードは部品じゃない。
組み合わせて、動かして、目的を果たして──そこで初めて意味を持つ。

おまえがここまで書いてきたのは、単なる文法じゃねぇ。
動かすための“構造”だ。
そして今、それが一つにまとまった。

Just keep typing, baby.
プログラムは設計だ。おまえが全部、動きを決めろ。


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

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