MapUtil.java
import java.util.HashMap;
import java.util.Map;
public class MapUtil {
public static void printMemberMap() {
// Mapを作æˆã€‚ã‚ーãŒInteger(会員番å·ï¼‰ã€å€¤ãŒString(åå‰ï¼‰
Map<Integer, String> memberMap = new HashMap<>();
// å‚åŠ è€…ã‚’ç™»éŒ²ã€‚æœ€åˆã«101番Yamadaを登録
memberMap.put(101, "Yamada");
// 102番Tanakaを登録
memberMap.put(102, "Tanaka");
// 101番Suzukiを登録 → ã™ã§ã«101番ãŒã‚ã‚‹ãŸã‚ã€"Yamada" ㌠"Suzuki" ã«ä¸Šæ›¸ãã•れる
memberMap.put(101, "Suzuki");
// Mapã®å†…容を1ä»¶ãšã¤å‡ºåŠ›ã™ã‚‹ï¼ˆkeyã¨valueã‚’å–得)
for (Map.Entry<Integer, String> entry : memberMap.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key + " → " + value);
}
}
}解説:Mapã«ãŠã‘ã‚‹ã‚ーã®é‡è¤‡
ã“ã®å•題ã§ã¯ã€Mapã«åŒã˜ã‚ー(ã“ã“ã§ã¯101)を複数回 put() ã—ãŸå ´åˆã«ä½•ãŒèµ·ã“ã‚‹ã‹ã‚’体感ã™ã‚‹ã“ã¨ãŒç›®çš„ã§ã™ã€‚
上書ãã®ä»•組ã¿
Javaã®Mapã§ã¯ã€ã‚ーãŒé‡è¤‡ã—ã¦ã„ã‚‹å ´åˆã€æ–°ã—ã„値ã§ä¸Šæ›¸ãã•れã¾ã™ã€‚
例:
map.put(101, "Yamada");
map.put(101, "Suzuki");ã“ã®å ´åˆã€Mapã®ä¸ã§ã¯ 101 → "Suzuki" ã®ã¿ãŒä¿æŒã•れã¾ã™ã€‚"Yamada" ã¯æ¶ˆãˆã¾ã™ã€‚
Mapã®å‡ºåŠ›æ–¹æ³•
Mapã®å‡ºåŠ›ã«ã¯ä»¥ä¸‹ã®æ–¹æ³•ãŒã‚りã¾ã™ï¼š
for (Map.Entry<K, V> entry : map.entrySet())- ã‚ーã¨å€¤ã‚’åŒæ™‚ã«æ‰±ã†å ´åˆã«ä¾¿åˆ©
for (K key : map.keySet())- ã‚ーã—ã‹æ‰±ã‚ãªã„ã¨ã用(値ã¯
map.get(key)ã§å–得)
- ã‚ーã—ã‹æ‰±ã‚ãªã„ã¨ã用(値ã¯
ã“ã®å•題ã§ã¯ã€æ˜Žç¤ºçš„ã«ãƒ«ãƒ¼ãƒ—ã—ã¦å‡ºåŠ›ã™ã‚‹ã“ã¨ãŒè¦ä»¶ã§ã™ã€‚
ã—ãŸãŒã£ã¦ System.out.println(map) ã®ã‚ˆã†ãªä¸€ç™ºè¡¨ç¤ºã¯ç¦æ¢ã§ã™ã€‚
é †åºã«ã¤ã„ã¦ã®æ³¨æ„
HashMap 㯠ã‚ーã®é †åºã‚’ä¿è¨¼ã—ã¾ã›ã‚“。
ãŸã¨ãˆã°ã€ç™»éŒ²é †ã« 101 → 102 → 101 ã¨å…¥ã‚ŒãŸã¨ã—ã¦ã‚‚ã€å‡ºåŠ›é †ãŒãれã¨ä¸€è‡´ã™ã‚‹ä¿è¨¼ã¯ã‚りã¾ã›ã‚“。
é †åºãŒé‡è¦ãªå ´é¢ã§ã¯ LinkedHashMap ã‚„ TreeMap を使ã†å¿…è¦ãŒã‚りã¾ã™ï¼ˆå¾Œã®ã‚¹ãƒ†ãƒƒãƒ—ã§æ‰±ã„ã¾ã™ï¼‰ã€‚
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
- Mapã«åŒã˜ã‚ーã§
put()ã™ã‚‹ã¨å€¤ãŒä¸Šæ›¸ãã•れる Map.entrySet()を使ã£ãŸãƒ«ãƒ¼ãƒ—ã®æ›¸ãæ–¹HashMapã¯å‡ºåŠ›é †åºã‚’ä¿è¨¼ã—ãªã„
Mapã®åŸºæœ¬æ“作ã¯ã€ã“ã®ã€Œä¸Šæ›¸ãã•れるã€ã¨ã„ã†æŒ™å‹•ã‚’ç†è§£ã™ã‚‹ã“ã¨ã‹ã‚‰å§‹ã¾ã‚Šã¾ã™ã€‚
102 ステップアップå•題 「Map修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€ŒMap修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼

// tesh:
// èªã¿é£›ã°ã™ã¨ã€ã‚ã¨ã§å¿…ãšå¾Œæ‚”ã™ã‚‹ç³»ã€‚èªã‚“ã©ã‘。


コメント