在 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` 中键的唯一性非常重要,重复的键会导致旧的键值对被替换。