Java map.get(key) - 如果 key 不存在,自动执行 put(key) 并返回?

标签 java dictionary get null put

我厌倦了以下模式:

value = map.get(key);
if (value == null) {
    value = new Object();
    map.put(key, value);
}

当您使用嵌套映射来表示多维结构时,此示例仅涉及要编写的额外代码的表面。

我确信某处存在可以避免这种情况的发生,但我在谷歌上的努力没有产生任何相关的结果。有什么建议吗?

最佳答案

java.util.concurrent.ConcurrentMap 

从 Java 8 开始

Java.util.Map

putIfAbsent(K key, V value) 

返回现有值,如果为 null 则插入给定值。所以如果 key 不存在值返回 null 并插入给定值,否则返回 existing value

如果您需要对值进行惰性评估

computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction)

关于Java map.get(key) - 如果 key 不存在,自动执行 put(key) 并返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334061/

相关文章:

java - Java/Android 中 Time 类功能的替换以及 DateTime 类的理解

java - Android 动画滞后

c# - 使用基于值的串联重复键构建一个新字典

php - 从 HTTP GET 接收数据并将其发送到网页

c - 为什么会出现段错误(C 中的信号量)?

java - Tomcat 7 上的 Spring Stack Web 应用程序未停止(需要强制终止)

python - 如何查找这个词典文件呢?

c# - 词典 - 添加注释以驱动智能感知

php mysql - 如何从第一页的链接中获取 ID 和日期?

java - GSON 堆栈溢出错误