在HashMap中,如果Value重復了,HashMap本身是允許的。HashMap中的每一個鍵值對都是唯一的,它的值并不考慮重復性。即使你將相同的值放入HashMap中,它也只會存儲一次。
然而,如果你需要在插入重復值時執行某些特定操作,例如更新現有條目的值或執行某些業務邏輯,那么你需要在插入之前進行檢查。你可以通過獲取鍵值的同時,額外取一個布爾類型的變量isValueExist來實現這一判斷。
以下是一個簡單的示例代碼:
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, Integer> hashMap = 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);
}
}
在這個示例中,我們首先嘗試插入一個不存在的鍵值對。然后,我們嘗試插入一個已存在的鍵,但值是不同的。最后,我們嘗試插入一個與現有鍵相同的鍵,但值是不同的。在插入重復的鍵時,我們檢查鍵是否存在,如果不存在則插入。在插入重復的值時,我們檢查值是否存在,如果不存在則插入。如果值已存在,我們可以選擇執行其他操作,例如更新現有條目的值。