import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 与えられた文字列型のキーと値からなるマップ stringMap
Map<String, String> stringMap = new HashMap<>();
stringMap.put("apple", "fruit");
stringMap.put("banana", "fruit");
stringMap.put("orange", "fruit");
stringMap.put("carrot", "vegetable");
stringMap.put("broccoli", "vegetable");
stringMap.put("apple", "fruit"); // 重複するキー
// 重複しているキーを表示
displayDuplicateKeys(stringMap);
}
// 重複しているキーを表示するメソッド
private static void displayDuplicateKeys(Map<String, String> map) {
// キーの重複を検出するためのセット
// 重複しているキーが追加されるたびに、このセットに追加していく
// キーが既に存在する場合、そのキーは重複していると判断できる
Map<String, Boolean> keySet = new HashMap<>();
for (Map.Entry<String, String> entry : map.entrySet()) {
String key = entry.getKey();
// 既にセットに存在する場合は重複しているキー
if (keySet.containsKey(key)) {
// 重複しているキーを表示
System.out.println("Duplicate key: " + key);
} else {
// セットにキーを追加
keySet.put(key, true);
}
}
}
}
このコードでは、displayDuplicateKeys
メソッドを使用してキーの重複を検出し、それを表示しています。keySet
というセットを使用して既に出現したキーをトラッキングしています。新しいキーが追加されるたびにセットに登録し、すでにセットに存在する場合は重複として判定しています。