101 「配列修羅道」 Step09 問題

在庫数を更新せよ

あなたは、Product のリストから指定された商品名の商品を探し、その在庫数を新しい値に更新したい。
該当する商品が見つかれば在庫数を更新し、その後に更新内容を表示する処理を作成せよ。
該当商品がなければ "該当商品なし" と出力せよ。

要件

  • メソッド名:updateStockByNameProductUtil に定義)
  • 引数:
    • ArrayList<Product> products
    • String keyword(商品名)
    • int newStock(新しい在庫数)
  • 処理:
    • 商品名が一致する Product を探す
    • 在庫数を newStock に変更
    • 変更内容を以下の形式で出力:
りんごの在庫数を10に更新しました
  • 見つからなければ "該当商品なし" を出力

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));

        // テストケース01: 存在する商品を更新
        ProductUtil.updateStockByName(products, "りんご", 20);
        // 出力: りんごの在庫数を20に更新しました

        // テストケース02: 存在しない商品を指定
        ProductUtil.updateStockByName(products, "パイナップル", 10);
        // 出力: 該当商品なし
    }
}

ヒント

  • 在庫数の変更は ProductsetStock(int newStock) を追加して対応
  • まず equals() で名前が一致する商品を探す
  • 見つかったら setStock(...) で更新 → break で終了
  • 見つからなかった場合に備えて boolean フラグを使う

解答例

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