在 Java 的 `LinkedHashMap` 中,鍵是唯一的,不能重復(fù)。每個(gè)鍵在 `LinkedHashMap` 中只能存在一個(gè)條目。
`LinkedHashMap` 是基于哈希表和雙向鏈表實(shí)現(xiàn)的,它繼承自 `HashMap` 類,并保留了元素的插入順序。因此,`LinkedHashMap` 中的鍵值對(duì)是按照插入順序進(jìn)行迭代的。
當(dāng)你向 `LinkedHashMap` 中插入一個(gè)已經(jīng)存在的鍵時(shí),它會(huì)替換舊的鍵值對(duì)。新的鍵值對(duì)會(huì)被放置在鏈表的最后,保持原有的插入順序。
以下是一個(gè)示例,展示了 `LinkedHashMap` 中鍵不能重復(fù)的特性:
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 中插入已經(jīng)存在的鍵,會(huì)替換舊的鍵值對(duì)
linkedHashMap.put(2, "New Two");
System.out.println(linkedHashMap); // 輸出: {1=One, 2=New Two, 3=Three}
}
}
在上述示例中,我們創(chuàng)建了一個(gè) `LinkedHashMap`,并插入了三個(gè)鍵值對(duì)。當(dāng)我們嘗試插入一個(gè)已經(jīng)存在的鍵 `2` 時(shí),舊的鍵值對(duì)被替換為新的鍵值對(duì)。
因此,確保在 `LinkedHashMap` 中鍵的唯一性非常重要,重復(fù)的鍵會(huì)導(dǎo)致舊的鍵值對(duì)被替換。