java map put
时间: 2023-07-03 12:21:58 浏览: 103
Java中的Map是一种用于存储键值对的数据结构,put方法可以向Map中添加键值对。其中,键和值都可以是任何Java对象。下面是一个示例:
```java
// 创建一个HashMap对象
Map<String, Integer> map = new HashMap<>();
// 添加键值对
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// 打印Map中所有的键值对
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
```
运行以上代码,输出结果如下:
```
apple: 1
banana: 2
orange: 3
```
在这个例子中,我们创建了一个HashMap对象,并使用put方法向其中添加了三个键值对。最后,使用entrySet方法获取Map中的所有键值对,并遍历输出。
相关问题
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"); // 新增一个值到已有键的列表中
```
阅读全文