Map中已存在指定Key时的行为及同Key异值插入的结果咨询
Map 重复Key操作行为解析
1. 当Map中已存在指定Key时的操作行为
以Java标准库常见Map实现(如HashMap、TreeMap)为例,不同方法的表现不同:
- 调用
put(key, value):已存在Key对应的旧值会被新值覆盖,方法返回被替换的旧值。 - 调用
putIfAbsent(key, value):不会修改现有Key的值,方法直接返回当前已存在的旧值。
2. 插入已存在Key的不同值时的结果
针对不同操作方法,结果分为以下情况:
- 使用
put方法:Map中该Key的旧值会被新值完全替换,最终Map存储新值,方法返回被替换的旧值。 - 使用
putIfAbsent方法:Map中该Key的值保持原有状态不变,新值不会被插入,方法返回当前已存在的旧值。 - 特殊情况:不可变Map实现(如Guava ImmutableMap)会直接抛出
UnsupportedOperationException,因为它们不允许修改已有条目。
内容的提问来源于stack exchange,提问作者Prakash Thakur
相关产品推荐
相关产品推荐

