MapUtil.java
import java.util.*;
public class MapUtil {
public static void runOrderSimulator() {
// 商å“ã”ã¨ã®å˜ä¾¡ã‚’ä¿æŒã™ã‚‹Map
Map<String, Integer> priceMap = new HashMap<>();
priceMap.put("Apple", 120);
priceMap.put("Banana", 80);
priceMap.put("Orange", 100);
// æ³¨æ–‡æ•°ã‚’ä¿æŒã™ã‚‹Map
Map<String, Integer> orderMap = new HashMap<>();
orderMap.put("Apple", 3);
orderMap.put("Banana", 5);
orderMap.put("Grape", 2); // 登録ã•れã¦ã„ãªã„商å“
int total = 0; // ç·å£²ä¸Šé‡‘é¡
// 注文Mapをループ
for (String product : orderMap.keySet()) {
int quantity = orderMap.get(product);
// 商å“ãŒç™»éŒ²ã•れã¦ã„ã‚‹ã‹ãƒã‚§ãƒƒã‚¯
if (priceMap.containsKey(product)) {
int price = priceMap.get(product);
int subtotal = price * quantity;
// 明細を出力
System.out.println(product + " → å˜ä¾¡: " + price + "円, 個数: " + quantity + ", å°è¨ˆ: " + subtotal + "円");
// ç·è¨ˆã«åŠ ç®—
total += subtotal;
} else {
// 商å“ãŒè¦‹ã¤ã‹ã‚‰ãªã„å ´åˆã¯ã‚¨ãƒ©ãƒ¼è¡¨ç¤º
System.out.println("エラー: å•†å“ '" + product + "' ã¯æœªç™»éŒ²ã§ã™ã€‚");
}
}
// ç·å£²ä¸Šã‚’出力
System.out.println("ç·å£²ä¸Š: " + total + "円");
}
}
解説:Mapを使ã£ã¦æ³¨æ–‡å‡¦ç†ã‚’実装ã™ã‚‹
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§ã¯ã€ã“れã¾ã§å¦ã‚“ã Mapæ“作をç·å‹•å“¡ã—ã¦ã€å®Ÿè·µçš„ãªå‡¦ç†ã‚’構築ã—ã¾ã™ã€‚
ãƒã‚¤ãƒ³ãƒˆã¨ãªã‚‹å‡¦ç†
- ä¾¡æ ¼ã¨æ³¨æ–‡æ•°ã¨ã„ã†ã€Œåˆ¥ã®Mapã€ã‚’対応ã•ã›ã‚‹
orderMapをループã—ã¦ã€å„商å“åã«å¯¾ã—ã¦priceMapã§å˜ä¾¡ã‚’å‚ç…§ã—ã¾ã™ã€‚ containsKey()を使ã£ã¦ã€å˜åœ¨ã—ãªã„商å“ã‚’ãƒã‚§ãƒƒã‚¯
未登録商å“(例:”Grape”)ã¯ã€ã‚¨ãƒ©ãƒ¼ã¨ã—ã¦å‡ºåŠ›ã—ã€é›†è¨ˆå¯¾è±¡ã«å«ã‚ã¾ã›ã‚“。- å„商å“ã®å°è¨ˆï¼ˆå˜ä¾¡ × æ•°é‡ï¼‰ã‚’計算ã—ã€é€æ¬¡è¡¨ç¤º
最後ã«ç·å£²ä¸Šã‚’åˆè¨ˆãƒ»å‡ºåŠ›ã—ã¾ã™ã€‚
å®Ÿè¡Œçµæžœã®ä¾‹
Apple → å˜ä¾¡: 120円, 個数: 3, å°è¨ˆ: 360円
Banana → å˜ä¾¡: 80円, 個数: 5, å°è¨ˆ: 400円
エラー: å•†å“ 'Grape' ã¯æœªç™»éŒ²ã§ã™ã€‚
ç·å£²ä¸Š: 760円
ã¾ã¨ã‚
- Mapã®çµ„ã¿åˆã‚ã›ï¼ˆpriceMap × orderMap)を自在ã«ä½¿ãˆã‚‹ã“ã¨
containsKey()ã«ã‚ˆã‚‹å˜åœ¨ãƒã‚§ãƒƒã‚¯ã®é‡è¦æ€§- æ¡ä»¶åˆ†å²ã¨ãƒ«ãƒ¼ãƒ—処ç†ã®çµ„ã¿åˆã‚ã›ãŒè‡ªç„¶ã«æ›¸ã‘ã‚‹ã‹
ã“ã®Finalã‚¹ãƒ†ãƒƒãƒ—ã‚’è‡ªåŠ›ã§æ›¸ã切れãŸãªã‚‰ã€Mapã®åŸºæœ¬æ“作ã¯ä¸€é€šã‚Šãƒžã‚¹ã‚¿ãƒ¼ã—ãŸã¨è¨€ã£ã¦è‰¯ã„。
ã“れã§Mapã«ãƒ“ビるã“ã¨ã¯ã€ã‚‚ã†ãªã„。。
102 ステップアップå•題 「Map修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€ŒMap修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// è…‘ã«è½ã¡ã‚‹ã¾ã§ãŒå‹‰å¼·ã€‚è½ã¨ã—ã¦ã„ã‘ã€ã“ã“ã§ã€‚
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント