在HashMap中,如果Value重复了,HashMap本身是允许的。HashMap中的每一个键值对都是唯一的,它的值并不考虑重复性。即使你将相同的值放入HashMap中,它也只会存储一次。
然而,如果你需要在插入重复值时执行某些特定操作,例如更新现有条目的值或执行某些业务逻辑,那么你需要在插入之前进行检查。你可以通过获取键值的同时,额外取一个布尔类型的变量isValueExist来实现这一判断。
以下是一个简单的示例代码:
import java.util.HashMap; public class Main { public static void main(String[] args) { HashMaphashMap = new HashMap<>(); String key1 = "key1"; int value1 = 10; String key2 = "key2"; int value2 = 20; String key3 = "key1"; // 这个键与key1相同 int value3 = 30; // 这个值与value1相同 // 检查键是否存在,如果不存在则插入 if (!hashMap.containsKey(key1)) { hashMap.put(key1, value1); } else { System.out.println("键 " + key1 + " 已存在"); } // 检查值是否存在,如果不存在则插入 if (!hashMap.containsValue(value1)) { hashMap.put(key2, value2); } else { System.out.println("值 " + value1 + " 已存在"); } // 尝试插入重复的键和值 if (!hashMap.containsKey(key3)) { hashMap.put(key3, value3); } else { System.out.println("键 " + key3 + " 已存在"); // 在这里执行你需要的操作,例如更新现有条目的值 hashMap.put(key3, value3 * 2); // 将值翻倍 } System.out.println(hashMap); } }
在这个示例中,我们首先尝试插入一个不存在的键值对。然后,我们尝试插入一个已存在的键,但值是不同的。最后,我们尝试插入一个与现有键相同的键,但值是不同的。在插入重复的键时,我们检查键是否存在,如果不存在则插入。在插入重复的值时,我们检查值是否存在,如果不存在则插入。如果值已存在,我们可以选择执行其他操作,例如更新现有条目的值。