在 Java 的 `LinkedHashMap` 中,鍵是唯一的,不能重復。每個鍵在 `LinkedHashMap` 中只能存在一個條目。
`LinkedHashMap` 是基于哈希表和雙向鏈表實現的,它繼承自 `HashMap` 類,并保留了元素的插入順序。因此,`LinkedHashMap` 中的鍵值對是按照插入順序進行迭代的。
當你向 `LinkedHashMap` 中插入一個已經存在的鍵時,它會替換舊的鍵值對。新的鍵值對會被放置在鏈表的最后,保持原有的插入順序。
以下是一個示例,展示了 `LinkedHashMap` 中鍵不能重復的特性:
import java.util.LinkedHashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1, "One");
linkedHashMap.put(2, "Two");
linkedHashMap.put(3, "Three");
System.out.println(linkedHashMap); // 輸出: {1=One, 2=Two, 3=Three}
// 向 LinkedHashMap 中插入已經存在的鍵,會替換舊的鍵值對
linkedHashMap.put(2, "New Two");
System.out.println(linkedHashMap); // 輸出: {1=One, 2=New Two, 3=Three}
}
}
在上述示例中,我們創建了一個 `LinkedHashMap`,并插入了三個鍵值對。當我們嘗試插入一個已經存在的鍵 `2` 時,舊的鍵值對被替換為新的鍵值對。
因此,確保在 `LinkedHashMap` 中鍵的唯一性非常重要,重復的鍵會導致舊的鍵值對被替換。