java map put
时间: 2023-07-03 21:28:21 浏览: 52
Java中的Map接口中的put方法是用于将键值对存储到Map中的方法。put方法的语法如下所示:
```
V put(K key, V value)
```
其中,K表示键的类型,V表示值的类型。该方法将一个键值对存储到Map中,并返回该键对应的旧值(如果存在)。如果该键之前不存在,则返回null。如果该键已经存在,则该键对应的旧值会被替换成新值。
例如,以下代码将一个键值对存储到Map中:
```
Map<String, Integer> map = new HashMap<>();
map.put("apple", 3);
```
这将在Map中存储一个键值对,其中键为"apple",值为3。如果该键之前不存在,则返回null;否则返回该键对应的旧值。
相关问题
java map put 重复的key
时会怎么样?
当使用 Map 的 put 方法添加一个键值对时,如果该 Map 已经包含了相同的键,则新值将覆盖旧值,并且 put 方法将返回旧值。如果该 Map 没有包含相同的键,则 put 方法将返回 null。所以如果重复的 key 被添加到 Map 中,它的值将会被更新,而不是添加一个新的键值对。
java map put 相同的key
在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"); // 新增一个值到已有键的列表中
```
阅读全文