LinkedHashMap存入key相同时会怎么处理
时间: 2023-10-26 16:58:08 浏览: 56
当使用 LinkedHashMap 存储键值对时,如果插入的键已经存在,它的值将会被更新。同时,该键值对的位置也会被更新到最近插入的位置。
以下是一个示例代码来演示 LinkedHashMap 在插入重复键时的处理:
```java
import java.util.LinkedHashMap;
public class Main {
public static void main(String[] args) {
// 创建一个 LinkedHashMap
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
// 向 LinkedHashMap 中插入键值对
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.put("A", 4); // 更新键"A"的值为4
// 输出最终的键值对
for (String key : map.keySet()) {
System.out.println("Key: " + key + ", Value: " + map.get(key));
}
}
}
```
运行上述代码将输出:
```
Key: B, Value: 2
Key: C, Value: 3
Key: A, Value: 4
```
如上所示,在插入重复的键"A"时,其值被更新为4,并且该键值对被移动到了最后一个位置。其他键值对的顺序保持不变。这是因为 LinkedHashMap 维护了一个双向链表,用于保持插入顺序。