101 「配列修羅道」 StepFinal 問題

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

あなたは、これまで作成してきた Product クラスおよびその周辺機能を活用し、小さな在庫管理アプリケーションを完成させる。
このアプリでは、商品の登録・一覧表示・検索・在庫数の更新・在庫の少ない商品の抽出を、すべてメソッドの呼び出しとしてテストコードから操作できる形で構成せよ。

要件

1. 商品一覧を表示する

みかんの在庫数: 5

2.商品名で検索する

みかんの在庫数: 5

3.在庫が少ない商品を表示する(しきい値指定)

バナナ (在庫: 3)

4.在庫数を更新する

りんごの在庫数を15に更新しました

5.該当商品が見つからない場合"該当商品なし" を出力する

Main.java(テストコード)

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);
        // 出力:
        // りんご (在庫: 10)
        // みかん (在庫: 5)
        // バナナ (在庫: 3)

        System.out.println("\n== 商品検索 ==");
        ProductUtil.searchByName(products, "みかん");
        // 出力: みかんの在庫数: 5

        System.out.println("\n== 在庫が少ない商品を表示(5未満)==");
        ProductUtil.printLowStockProducts(products, 5);
        // 出力:
        // バナナ (在庫: 3)

        System.out.println("\n== 在庫数の更新 ==");
        ProductUtil.updateStockByName(products, "りんご", 15);
        // 出力: りんごの在庫数を15に更新しました

        System.out.println("\n== 存在しない商品の検索・更新 ==");
        ProductUtil.searchByName(products, "パイナップル");
        // 出力: 該当商品なし

        ProductUtil.updateStockByName(products, "パイナップル", 10);
        // 出力: 該当商品なし
    }
}

ヒント

  • これまでに作成した以下のメソッドを使うだけで構成可能:
    • printStockList(ArrayList<Product>)
    • searchByName(ArrayList<Product>, String)
    • printLowStockProducts(ArrayList<Product>, int)
    • updateStockByName(ArrayList<Product>, String, int)
  • クラス設計やリストの使い方はStep06〜09で習得済み
  • 「何を表示するか」「どう表示するか」を統一して見やすくすることが大事

解答例

101 ステップアップ問題 「配列修羅道」