为了理解这一点,我阅读了多篇文章,但我似乎无法理解为什么在执行put操作之前,如果地图没有包含密钥,为什么要进行检查呢?比如,
if(!myMap.containsKey(myKey) {
myMap.put(myKey,myValue);
}为什么我们需要这张支票?无论哪种方式,map都不允许重复键,如果键已经存在,则用新值替换键。那么,为什么我们需要显式地检查这个呢?是否需要对Map的所有实现进行检查?如果这是一个非常基本的问题,我很抱歉。我似乎找不到这个确切问题的答案。如果有回复我可能错过的帖子,请给我指点,并随时标记我的副本。
发布于 2014-06-18 06:33:03
您需要检查,因为有时如果键已经存在,则不希望更新映射的值。我认为这是一个广泛使用的代码块,其中映射是可变的/可修改的,但是可以防止重写值。
发布于 2014-06-18 06:35:39
当value被覆盖时,key也会被覆盖。
发布于 2014-06-18 06:37:55
最好在这里添加对这些多个帖子的引用,以了解详细的描述。
映射确实不允许“多个”条目,因此当您调用put(key, value)时,您实际上替换了现有的值或创建了新的条目。因此,如果您对上一组条目感兴趣,那么只有您可以调用put()而无需任何检查。但是,如果您对第一项感兴趣,则只应在输入前检查键的存在。
这个例子是属性文件和Windows之间的区别。如果在属性中有两个具有相同键的条目,则将设置最后一个值。但是,在解析ini文件时,将接受第一个重复条目。
https://stackoverflow.com/questions/24278474
复制相似问题