102 「Map修羅道」 StepFinal 問題

「商品注文シミュレータを完成させよ」

あなたは、商品情報と注文情報をもとに、次のような処理を行う 商品注文シミュレータ を作成します。

以下の2つのMapがすでに存在しています:

  • Map<String, Integer> priceMap:商品名 → 単価(円)
  • Map<String, Integer> orderMap:商品名 → 注文数(個)

以下のデータを使って、各商品の合計金額を計算し、最終的な総売上金額を出力してください。


登録済み商品データ(priceMap)

"Apple"  → 120  
"Banana" → 80  
"Orange" → 100

注文情報(orderMap)

"Apple"  → 3  
"Banana" → 5  
"Grape"  → 2  ← この商品は登録されていない!

要件

  1. 存在しない商品(ここでは "Grape")が注文された場合は 「エラーとして表示」し、計算対象に含めないこと
  2. 正常な商品は「商品名、単価、個数、小計」を出力すること
  3. 最後に総売上金額を出力すること
  4. for文、MapcontainsKey()を使用すること(Stream API は使わない)

テストコード(Main.java)

public class Main {
    public static void main(String[] args) {
        MapUtil.runOrderSimulator();
    }
}

ヒント

  • orderMap をループし、商品名で priceMap.containsKey() を確認する
  • 見つかれば「単価 × 注文数」で小計を計算
  • 見つからなければ System.out.println("エラー: ...") で表示
  • すべての小計を足し合わせて総売上を求める

解答例

102 ステップアップ問題 「Map修羅道」