import java.util.Map;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// 与ãˆã‚‰ã‚ŒãŸæ•´æ•°åž‹ã®ã‚ーã¨å€¤ã‹ã‚‰ãªã‚‹ãƒžãƒƒãƒ— numberMap
Map<String, Integer> numberMap = new HashMap<>();
numberMap.put("One", 1);
numberMap.put("Two", 2);
numberMap.put("Three", 3);
numberMap.put("Four", 4);
numberMap.put("Five", 5);
// マップã®å€¤ã®åˆè¨ˆã‚’計算
int sum = calculateSum(numberMap);
// çµæžœã‚’表示
System.out.println("マップã®å€¤ã®åˆè¨ˆ: " + sum);
}
// マップã®å€¤ã®åˆè¨ˆã‚’計算ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰
private static int calculateSum(Map<String, Integer> map) {
// åˆæœŸåŒ–: åˆè¨ˆå€¤ã‚’0ã«è¨å®š
int sum = 0;
// マップã®å„エントリã«å¯¾ã—ã¦å復処ç†
for (Map.Entry<String, Integer> entry : map.entrySet()) {
// ã‚ーã¨å€¤ã‚’å–å¾—
String key = entry.getKey();
int value = entry.getValue();
// åˆè¨ˆã«å€¤ã‚’åŠ ç®—
sum += value;
// ç¾åœ¨ã®ã‚¨ãƒ³ãƒˆãƒªã«é–¢ã™ã‚‹è©³ç´°ãªæƒ…å ±ã‚’è¡¨ç¤º (コメントアウトã—ã¦ã‚‚æ§‹ã„ã¾ã›ã‚“)
// System.out.println("ã‚ー: " + key + ", 値: " + value);
}
// 最終的ãªåˆè¨ˆã‚’è¿”ã™
return sum;
}
}
ã“ã®ã‚³ãƒ¼ãƒ‰ã§ã¯ã€entrySet メソッドを使用ã—㦠numberMap ã®ã‚¨ãƒ³ãƒˆãƒªã‚»ãƒƒãƒˆã‚’å–å¾—ã—ã€ãれを Map.Entry オブジェクトã¨ã—ã¦åˆ©ç”¨ã—ã¦ã„ã¾ã™ã€‚å„エントリã®ã‚ーã¨å€¤ã¯ getKey() ãŠã‚ˆã³ getValue() メソッドを使用ã—ã¦å–å¾—ã•れã€ãã®æƒ…å ±ãŒè¡¨ç¤ºã•れã¦ã„ã¾ã™ã€‚ã“れã«ã‚ˆã‚Šã€Entry 㨠entrySet ã®å½¹å‰²ãŒæ˜Žç¤ºçš„ã«ãªã‚Šã¾ã—ãŸã€‚
マップã®åŸºæœ¬çš„ãªç‰¹å¾´ã¨ä½¿ç”¨æ³•
マップ(Map)ã¯ã€ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’関連付ã‘ã‚‹ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã§ã‚りã€ç•°ãªã‚‹è¦ç´ を一æ„ã«è˜åˆ¥ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•れã¾ã™ã€‚Javaã®Mapインターフェースã¯ã€ã“ã®æ¦‚念を実装ã—ãŸã‚‚ã®ã§ã€æ§˜ã€…ãªã‚¯ãƒ©ã‚¹ãŒæä¾›ã•れã¦ã„ã¾ã™ï¼ˆä¾‹: HashMapã€TreeMapã€LinkedHashMapãªã©ï¼‰ã€‚
以下ã¯ã€ãƒžãƒƒãƒ—ã«ã¤ã„ã¦ã®ä¸€èˆ¬çš„ãªè§£èª¬ã§ã™ã€‚
ã‚ーã¨å€¤ã®ãƒšã‚¢
- マップã¯ã‚ーã¨å€¤ã®ãƒšã‚¢ã§æ§‹æˆã•れã¾ã™ã€‚ã‚ーã¯ä¸€æ„ã§ã‚りã€å€¤ã¯ã‚ーã«å¯¾å¿œã—ã¦æ ¼ç´ã•れã¾ã™ã€‚
- ã‚ーã¨å€¤ã¯ãれãžã‚Œã‚ªãƒ–ジェクトã§ã‚ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚ã‚ーã¯é‡è¤‡ã—ãªã„ãŸã‚ã€åŒã˜ã‚ーをæŒã¤è¦ç´ ã¯å˜åœ¨ã—ã¾ã›ã‚“。
Map インターフェース
Mapインターフェースã¯ã€ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’æ ¼ç´ã—ã€æ¤œç´¢ã€æŒ¿å…¥ã€å‰Šé™¤ãªã©ã®æ“作をæä¾›ã—ã¾ã™ã€‚- 主ãªå®Ÿè£…クラスã«ã¯
HashMapã€TreeMapã€LinkedHashMapãŒã‚りã¾ã™ã€‚
主ãªå®Ÿè£…クラス
- HashMap:
- ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ãƒ«ã«æ ¼ç´ã—ã¾ã™ã€‚
- ã‚ーã®é †åºã¯ä¿è¨¼ã•れã¾ã›ã‚“。
- TreeMap:
- ã‚ーをソートã•れãŸé †åºã§ä¿æŒã—ã¾ã™ã€‚
- ã‚ーã®é †åºã«å¿œã˜ã¦ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ãŒå¯èƒ½ã§ã™ã€‚
- LinkedHashMap:
- ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’ãƒãƒƒã‚·ãƒ¥ãƒ†ãƒ¼ãƒ–ãƒ«ã«æ ¼ç´ã—ã¾ã™ã€‚
- ã‚ãƒ¼ã®æŒ¿å…¥é †åºãŒä¿æŒã•れã¾ã™ã€‚
ä¸»ãªæ“作
è¦ç´ ã®æŒ¿å…¥:
map.put(key, value);
è¦ç´ ã®å–å¾—:
value = map.get(key);
è¦ç´ ã®å‰Šé™¤:
map.remove(key);
å˜åœ¨ã®ç¢ºèª:
if (map.containsKey(key)) { /* ... */ }
ã‚ーã¾ãŸã¯å€¤ã®ã‚»ãƒƒãƒˆå–å¾—:
Set<K> keySet = map.keySet();
Collection<V> values = map.values();
エントリセットå–å¾—:
Set<Map.Entry<K, V>> entrySet = map.entrySet();
例: HashMapã®ä½¿ç”¨
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// HashMapã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆ
Map<String, Integer> numberMap = new HashMap<>();
// è¦ç´ ã®æŒ¿å…¥
numberMap.put("One", 1);
numberMap.put("Two", 2);
numberMap.put("Three", 3);
// è¦ç´ ã®å–å¾—
int value = numberMap.get("Two");
System.out.println("Value for key 'Two': " + value);
// ã‚ーã®å˜åœ¨ç¢ºèª
if (numberMap.containsKey("Four")) {
System.out.println("Key 'Four' exists.");
} else {
System.out.println("Key 'Four' does not exist.");
}
}
}
ã“ã®ä¾‹ã§ã¯ã€HashMap を使用ã—ã¦ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’管ç†ã—ã¦ã„ã¾ã™ã€‚ãƒžãƒƒãƒ—ã¯æ§˜ã€…ãªã‚·ãƒŠãƒªã‚ªã§éžå¸¸ã«ä¾¿åˆ©ã§ã‚りã€ã‚ーを使用ã—ã¦é«˜é€Ÿãªãƒ‡ãƒ¼ã‚¿ã®æ¤œç´¢ãŒå¯èƒ½ã§ã™ã€‚
マップã¯ã€ã‚ーã¨å€¤ã®ãƒšã‚¢ã‚’効果的ã«ç®¡ç†ã—ã€æ¤œç´¢ã€æŒ¿å…¥ã€å‰Šé™¤ãªã©ã®æ“作を容易ã«è¡Œãˆã‚‹ãƒ‡ãƒ¼ã‚¿æ§‹é€ ã§ã™ã€‚ã‚ーã¯ä¸€æ„ã§ã‚りã€ãれã«ç´ã¥ã値をå–å¾—ã™ã‚‹ã“ã¨ã§ã€ç´ æ—©ãデータã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚Javaã® Map インターフェースãŠã‚ˆã³ãã®å®Ÿè£…クラス(HashMapã€TreeMapã€LinkedHashMap ãªã©ï¼‰ã¯ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã§å¤šãã®æ§‹é€ 化ã•れãŸãƒ‡ãƒ¼ã‚¿ã‚’効果的ã«ç®¡ç†ã™ã‚‹ãŸã‚ã®å¼·åŠ›ãªãƒ„ールã§ã™ã€‚
マップを使ã†ã“ã¨ã§ã€ãƒ‡ãƒ¼ã‚¿ã®é–¢é€£æ€§ã‚„é€£æºæ€§ã‚’高ã‚ã€ã‚¢ãƒ—リケーションã®ãƒ‘フォーマンスå‘上やメンテナンスã®ã—ã‚„ã™ã•を実ç¾ã§ãã¾ã™ã€‚ã‚ーã¨å€¤ã®çµ„ã¿åˆã‚ã›ã¯ã€ãƒ‡ãƒ¼ã‚¿ã®æ„味を表ç¾ã—ã€æŸ”軟性をæä¾›ã—ã¾ã™ã€‚プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã«ãŠã„ã¦ã€ãƒžãƒƒãƒ—ã¯éžå¸¸ã«ä¸€èˆ¬çš„ã§ã‚りã€ã•ã¾ã–ã¾ãªå•題ã«å¯¾ã—ã¦æœ‰ç”¨ã§ã™ã€‚
ã“れã‹ã‚‰ã‚‚ã€é©åˆ‡ã«ãƒžãƒƒãƒ—を活用ã—ã¦ãƒ‡ãƒ¼ã‚¿ã‚’管ç†ã—ã€ãƒ—ãƒã‚°ãƒ©ãƒ ã®æŸ”軟性やå¯èªæ€§ã‚’å‘上ã•ã›ã‚‹ã“ã¨ã§ã€åŠ¹æžœçš„ãªã‚½ãƒ•トウェア開発ã«è²¢çŒ®ã§ãã‚‹ã“ã¨ã§ã—ょã†ã€‚
「020 コレクションフレームワークã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント