MapUtil.java
import java.util.HashMap;
import java.util.Map;
public class MapUtil {
public static void printDepartments() {
// 社員番å·ã¨éƒ¨ç½²åを記録ã™ã‚‹Mapを作æˆ
Map<Integer, String> departmentMap = new HashMap<>();
// データを登録
departmentMap.put(2001, "Sales");
departmentMap.put(2002, "HR");
departmentMap.put(2003, "Engineering");
// ---- keySet() を使ã£ãŸãƒ«ãƒ¼ãƒ— ----
System.out.println("=== keySet() を使ã£ãŸå‡ºåŠ› ===");
for (Integer empId : departmentMap.keySet()) {
// key(社員番å·ï¼‰ã‹ã‚‰ value(部署å)をå–å¾—ã™ã‚‹
String department = departmentMap.get(empId);
System.out.println(empId + " → " + department);
}
// ---- entrySet() を使ã£ãŸãƒ«ãƒ¼ãƒ— ----
System.out.println("=== entrySet() を使ã£ãŸå‡ºåŠ› ===");
for (Map.Entry<Integer, String> entry : departmentMap.entrySet()) {
// entry ã‹ã‚‰ key 㨠value ã‚’åŒæ™‚ã«å–り出ã™
Integer empId = entry.getKey();
String department = entry.getValue();
System.out.println(empId + " → " + department);
}
}
}解説:Mapをループã§å‡ºåŠ›ã™ã‚‹2ã¤ã®æ–¹æ³•
Javaã®Mapをループã§å‡ºåŠ›ã™ã‚‹ã«ã¯ã€ä¸»ã«ä»¥ä¸‹ã®2é€šã‚Šã®æ–¹æ³•ãŒã‚りã¾ã™ã€‚
方法①:keySet() を使ã†
for (Integer key : map.keySet()) {
String value = map.get(key);
System.out.println(key + " → " + value);
}keySet()ã¯ã™ã¹ã¦ã®ã‚ーをå–å¾—ã§ãã‚‹- ã‚ーã‹ã‚‰å€¤ã‚’å–å¾—ã™ã‚‹ãŸã‚ã«
map.get(key)を毎回呼ã³å‡ºã™å¿…è¦ãŒã‚ã‚‹ - å˜ç´”ã ãŒã€MapãŒå¤§ãããªã‚‹ã¨ãƒ‘フォーマンスé¢ã§ã‚„ã‚„ä¸åˆ©
方法②:entrySet() を使ã†
for (Map.Entry<Integer, String> entry : map.entrySet()) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key + " → " + value);
}entrySet()ã¯ã‚ーã¨å€¤ã®ãƒšã‚¢ï¼ˆEntryï¼‰ã‚’ä¸€æ‹¬ã§æ‰±ãˆã‚‹getKey()ã¨getValue()を使ã£ã¦ãれãžã‚Œå–å¾—- Mapã®ä¸èº«ã‚’ã™ã¹ã¦å‡¦ç†ã™ã‚‹å ´é¢ã§ã¯æŽ¨å¥¨ã•れる方法
å®Ÿè¡Œçµæžœã®ä¾‹ï¼ˆé †ä¸åŒï¼‰ï¼š
=== keySet() を使ã£ãŸå‡ºåŠ› ===
2001 → Sales
2002 → HR
2003 → Engineering
=== entrySet() を使ã£ãŸå‡ºåŠ› ===
2001 → Sales
2002 → HR
2003 → Engineering※ HashMap ã¯é †åºã‚’ä¿è¨¼ã—ãªã„ãŸã‚ã€å‡ºåŠ›é †ã¯å®Ÿè¡Œç’°å¢ƒã«ã‚ˆã‚Šç•°ãªã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
ã¾ã¨ã‚:ã“ã®ã‚¹ãƒ†ãƒƒãƒ—ã§å¦ã¶ã¹ãã“ã¨
Mapをループ処ç†ã™ã‚‹éš›ã®2é€šã‚Šã®æ–¹æ³•を体得ã™ã‚‹keySet()ã¯æ§‹é€ ãŒã‚·ãƒ³ãƒ—ルã€entrySet()ã¯åŠ¹çŽ‡çš„- 実用上ã¯
entrySet()ãŒæŽ¨å¥¨ã•れるシーンãŒå¤šã„
102 ステップアップå•題 「Map修羅é“ã€
Just Keep Typing, Baby!ã§ã¯ã€ã“ã®ã€ŒMap修羅é“ã€ã§ã¤ã¾ã¥ã„ãŸäººå‘ã‘ã®è§£èª¬ã‚’ã—ã¦ã„ã¾ã™ã€‚ã“ã¡ã‚‰ã‚‚ãœã²ï¼

// tesh:
// ã¾ã ç´å¾—ã—ã¦ãªã„ã‚„ã‚? ãªã‚‰ã€ã“ã£ã¡æ¥ã„。


コメント