MapUtil.java
import java.util.*;
public class MapUtil {
public static void findProductIdByName() {
// 商å“IDã¨å•†å“åã®å¯¾å¿œã‚’記録ã™ã‚‹Mapを作æˆ
Map<Integer, String> productMap = new HashMap<>();
productMap.put(101, "Apple");
productMap.put(102, "Banana");
productMap.put(103, "Orange");
// 検索対象ã®å•†å“å
String targetName = "Banana";
// フラグã¨çµæžœå¤‰æ•°ã‚’用æ„
boolean found = false;
int foundId = -1;
// Mapをループã—ã¦ã€valueã‹ã‚‰keyを探ã™
for (Map.Entry<Integer, String> entry : productMap.entrySet()) {
Integer id = entry.getKey();
String name = entry.getValue();
// 値(商å“å)ãŒä¸€è‡´ã—ãŸã‚‰
if (name.equals(targetName)) {
found = true;
foundId = id;
break; // 見ã¤ã‹ã£ãŸã‚‰ãƒ«ãƒ¼ãƒ—終了
}
}
// çµæžœã®å‡ºåŠ›
System.out.println("商å“å: " + targetName);
if (found) {
System.out.println("商å“ID: " + foundId);
} else {
System.out.println("見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ");
}
}
}
解説:「Mapã¯å€¤ã§æ¤œç´¢ã§ããªã„ã€ã£ã¦ã©ã†ã„ã†ã“ã¨ï¼Ÿ
Mapã®åŸºæœ¬ã¯ã€Œã‚ー → 値ã€ã§ã™ã€‚
ã¤ã¾ã‚Šã€ã€ŒIDã‹ã‚‰åå‰ã‚’引ãã€ã®ã¯å¾—æ„ã§ã™ãŒã€ã€Œåå‰ã‹ã‚‰IDを探ã™ã€ã®ã¯å¾—æ„ã§ã¯ã‚りã¾ã›ã‚“。
ãªãœè‹¦æ‰‹ãªã®ã‹ï¼Ÿ
Mapã¯ã‚ーã«å¯¾ã—ã¦ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ãƒ«ã‚„ãƒ„ãƒªãƒ¼æ§‹é€ ã‚’æ§‹ç¯‰ã—ã¦ã„ã¾ã™ãŒã€
値ã«é–¢ã—ã¦ã¯ä½•ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã‚‚æŒãŸãªã„ã‹ã‚‰ã§ã™ã€‚
ãã®ãŸã‚ã€å€¤ã‹ã‚‰ã‚ーを探ã™ã«ã¯ã€å…¨ä»¶ãƒ«ãƒ¼ãƒ—ã—ã¦1ä»¶ãšã¤æ¯”較ã™ã‚‹ã—ã‹ã‚りã¾ã›ã‚“。
æ›¸ãæ–¹ã®ãƒã‚¤ãƒ³ãƒˆ
for (Map.Entry<Integer, String> entry : map.entrySet()) {
if (entry.getValue().equals(target)) {
// 一致ã—ãŸã‚‰entry.getKey()ãŒç›®çš„ã®ID
}
}
equals()ã§æ–‡å—åˆ—ã®æ¯”較- 見ã¤ã‹ã£ãŸæ™‚点ã§
breakã™ã‚‹ã¨åŠ¹çŽ‡ãŒè‰¯ã„ - 見ã¤ã‹ã‚‰ãªã‹ã£ãŸå ´åˆã®å‡¦ç†ã‚‚忘れãšã«
containsValue() ã§ã¯è¶³ã‚Šãªã„ç†ç”±
map.containsValue("Banana"); // true/false ã—ã‹è¿”ã•ãªã„
- ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã¯ 「値ãŒå˜åœ¨ã™ã‚‹ã‹ã©ã†ã‹ã€ ã¯ã‚ã‹ã‚‹ãŒã€ã€Œã©ã®ã‚ーã‹ã€ ã¯ã‚ã‹ã‚‰ãªã„
- çµå±€ãƒ«ãƒ¼ãƒ—ãŒå¿…è¦ã«ãªã‚‹
å®Ÿè¡Œçµæžœã®ä¾‹
商å“å: Banana
商å“ID: 102
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
- Mapã¯ã€Œã‚ーã‹ã‚‰å€¤ã€ã¯å¾—æ„ã§ã‚‚「値ã‹ã‚‰ã‚ーã€ã¯è‹¦æ‰‹
- 値ã‹ã‚‰ã‚ーを探ã™ã«ã¯ã€å…¨ä»¶ãƒ«ãƒ¼ãƒ—ã—ã¦æ¯”較ã™ã‚‹å¿…è¦ãŒã‚ã‚‹
- 検索効率を求ã‚ã‚‹ãªã‚‰ã€Œé€†å‘ãã®Mapã€ã‚’別途用æ„ã™ã‚‹æ–¹æ³•ã‚‚ã‚る(応用)
ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§Mapã®ã€Œç‰‡æ–¹å‘性ã€ã‚’知ã£ã¦ãŠãã“ã¨ã¯ã€è¨è¨ˆãƒŸã‚¹ã‚’防ãã†ãˆã§ã¨ã¦ã‚‚é‡è¦ã§ã™ã€‚
102 ステップアップå•題 「Map修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€ŒMap修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼
// tesh:
// ã“ã®ã¸ã‚“曖昧ãªã¾ã¾ã ã¨ã€ç—›ã„ç›®ã¿ã‚‹ãžã€‚
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™



コメント