当前位置: 首页 > 面试题库 >

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

黄彬
2023-03-14
问题内容

我讨厌以下模式:

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

当嵌套图表示多维结构时,此示例仅会刮擦要编写的额外代码的表面。

我确定某个地方可以避免这种情况,但是我在Google搜索中所做的努力没有任何意义。 有什么建议?


问题答案:

java.util.concurrent.ConcurrentMap

和从Java 8

Java.util.Map

putIfAbsent(K key, V value)

它返回映射到键的值,或者插入给定的值;如果没有为键映射任何值,则返回null。

如果您需要懒惰的价值评估,

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


 类似资料:
  • 问题内容: 因此,我尝试将Key转换为字符串,以便可以使用System.out显示它,然后将其转换回Key。我可以使用BASE64Encoder将其转换为字符串,但是在将其转换回时遇到问题。这是我的源代码: 问题答案: 您永远不会使用un-base-64您的字符串。 替换为: 与

  • exists key 返回1表示存在,0不存在

  • key

    Key管理设备按键事件 方法: addEventListener: 添加按键事件监听器 hideSoftKeybord: 隐藏软键盘 setAssistantType: 设置辅助输入类型 showSoftKeybord: 显示软键盘 removeEventListener: 移除按键事件监听器 对象: KeyType: 按键类型 KeyEvent: 按键事件 回调方法: KeyEventCallb

  • keys *user* keys * 有3个通配符 *, ? ,[] *: 通配任意多个字符 ?: 通配单个字符 []: 通配括号内的某1个字符 注:生产已经禁止。更安全的做法是采用scan,原理和操作如下: 针对Keys的改进,支持分页查询Key。在迭代过程中,Keys有增删时不会要锁定写操作,数据集完整度不做任何保证,同一条key可能会被返回多次. 对于其他危险的命令,新版本也进行了替代:

  • type key 返回 none 表示不存在key。string字符类型,list 链表类型 set 无序集合类型…

  • 这个功能有什么用处?如果我想在字典中查找与键相关联的值,我可以执行,它返回相同的内容: