java - 如何更新 map 中的值(如果存在)否则将其插入

标签 java

我进行了搜索,很惊讶以前没有人问过这个问题(至少我找不到)。

我有这样一张 map :

Map<String, String> myMap

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

放置一个值

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

if(myMap.containsKey(key)) {
    myMap.replace(key, value);
} else {
    myMap.put(key, value);
}

有更好的方法吗?我个人觉得这个条件有点不必要,而且过于复杂,可能是一行而不是五行!

最佳答案

替换将由 put() 完成:

来自 HashMap 的文档

public V put(K key, V value) Associates the specified value with the specified key in this map. If the map previously contained a mapping for the key, the old value is replaced.

所以你只需要

myMap.put(key, value);

关于java - 如何更新 map 中的值(如果存在)否则将其插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31876857/

相关文章:

java - CXF SSL Spring 配置 - 空客户端证书链

java - 为什么 Arrays.stream() 不支持 char[] 唯一的数组?

java - 我想从数据库检索图像并使用 <img> 标记在 JSP 中显示它。我正在使用我的sql

java - 在 Spring Web 应用程序中找不到类 [org.springframework.scheduling.quartz.SchedulerFactoryBean]

java - 麻烦初始化 List<Object[]> 使用 Arrays.asList

java - Matlab + Java + JNI : java. lang.UnsatisfiedLinkError

java - switch 语句,将默认设置为较早定义的 switch case?

java - tomcat的webapps目录下有多个应用程序,如何手动启动和停止apache-tomcat中的应用程序?

java - 扩展 Log4JLogger 并在运行时调用子类

java - 在新窗口中弹出警报