import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 与えられた2つの整数型のキーと値からなるマップ mapA と mapB
Map<String, Integer> mapA = new HashMap<>();
mapA.put("Apple", 3);
mapA.put("Banana", 2);
mapA.put("Orange", 5);
Map<String, Integer> mapB = new HashMap<>();
mapB.put("Apple", 7);
mapB.put("Banana", 4);
mapB.put("Grapes", 6);
// 新しいマップを作成
Map<String, Integer> mergedMap = mergeMaps(mapA, mapB);
// 結果を表示
System.out.println("新しいマップ: " + mergedMap);
}
// 与えられた2つのマップをマージするメソッド
private static Map<String, Integer> mergeMaps(Map<String, Integer> mapA, Map<String, Integer> mapB) {
// 新しいマップを作成
Map<String, Integer> mergedMap = new HashMap<>(mapA);
// mapB の各エントリに対して処理
for (Map.Entry<String, Integer> entryB : mapB.entrySet()) {
String keyB = entryB.getKey();
int valueB = entryB.getValue();
// mapA に対応するキーが存在する場合は値を合計
if (mergedMap.containsKey(keyB)) {
int valueA = mergedMap.get(keyB);
mergedMap.put(keyB, valueA + valueB);
} else {
// mapA に対応するキーが存在しない場合はそのまま保持
mergedMap.put(keyB, valueB);
}
}
return mergedMap;
}
}
このコードでは、mergeMaps
メソッドを使用して mapA
と mapB
をマージして新しいマップ mergedMap
を作成しています。mergedMap
には最初に mapA
のエントリが追加され、その後 mapB
のエントリが処理され、キーがすでに存在する場合は値を合計し、存在しない場合はそのまま新しいエントリが追加されます。