如果存在,则如何更新地图中的值,否则插入它

Cra*_*ino 10 java

我做了一个搜索,并惊讶于之前没有被问过(至少我找不到它).

我有这样的地图:

Map<String, String> myMap
Run Code Online (Sandbox Code Playgroud)

我知道我可以检查地图中是否存在一个键containsKey(Object key);,我可以使用替换值replace(String key, String value);并自然地使用值put(String key, String value);

现在,如果我想检查一个值,如果它存在更新它,否则插入它,我必须使用一个条件:

if(myMap.containsKey(key)) {
    myMap.replace(key, value);
} else {
    myMap.put(key, value);
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?我个人认为这种情况有点不必要,并且过于复杂,可能只有一行而不是五行!

Jen*_*ens 15

替换将通过以下方式完成put():

HashMap的文档

public V put(K key,V value)将指定值与此映射中的指定键关联.如果映射先前包含键的映射,则替换旧值.

所以你只需要

myMap.put(key, value);
Run Code Online (Sandbox Code Playgroud)


Sur*_*tta 5

删除所有代码,下面一行就足够了。

myMap.put(key, value);
Run Code Online (Sandbox Code Playgroud)

那已经检查并替换是否已经存在任何值。