我厌倦了以下模式:
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/