java map put 相同的key
时间: 2024-10-12 10:07:59 浏览: 60
在Java中,Map是一种键值对集合,`put()`方法用于向Map中添加新的元素或者更新已存在的元素。如果你尝试将相同的key放入Map,有以下几种情况:
1. 如果键(Key)已经存在,那么原来的值会被覆盖(如果提供的新值不是null)。这就是所谓的"替换操作"(Replace Operation),默认的行为对于HashMap、TreeMap等实现是这样的。
```java
Map<String, String> map = new HashMap<>();
map.put("example", "oldValue"); // 插入初始键值对
map.put("example", "newValue"); // 第二次插入,旧的"value"会被"newValue"替换
```
现在,`map.get("example")`会返回"newValue"。
2. 对于不允许重复键的结构(如ConcurrentSkipListMap),第二次的`put()`操作会抛出`java.util.Map.Entry.SettingEntryException`异常。
3. 如果你想在已有的键关联多个值(通常用于保存列表),可以使用`put(key, list.add(value))`的方式,这里`list`是`Collection`类型的值(例如List)。这会创建一个新的`Entry`,其中的值是一个包含原始值的新List。
```java
Map<String, List<String>> multimap = new ConcurrentHashMap<>();
multimap.put("example", Collections.singletonList("oldValue"));
multimap.put("example", "newValue"); // 新增一个值到已有键的列表中
```
阅读全文