Java: HashMap: get: 指定默认值

标签 java python dictionary hashmap hashtable

在 Python 中,我可以执行以下操作:

d = { 'a': True, 'b': False }
print d.get('x', True)

它会打印

True

在 Java 中,HashMap.get 方法没有用于指定默认值的第二个参数。实现这一目标的正确、简洁和可读的方法是什么?以下表达式对我来说似乎太多余了:

map.containsKey("x") ? map.get("x") : true

最佳答案

OP 编辑​​了他的问题,但我会留下答案以防万一。

你应该使用

map.containsKey("x") 

代替

map.get("x") != null

测试 map 是否有 key 的映射。

映射可以包含 null 作为映射中的有效值。

python 也是一样。测试 dict[key] == None 是否知道一个键是否映射到某物是不够的。

快速测试:

d = {'a': None}

# returns True
d['a'] == None

# raises KeyError
d['b'] 

# returns 'Whatever'
d.get('b', 'Whatever')

所以 java 相当于 python dict.get() 是

map.containsKey("x") ? map.get("x") : default_value

正如楼主所说

关于Java: HashMap: get: 指定默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8293970/

相关文章:

java - JOptionPane 灰色一个按钮

java - Servlet [jsp] 的 Spring 微服务 : Servlet. service() 引发异常

javascript - 405 : Method not allowed (AJAX query to Flask)

python - 加速Python中numpy/scipy中的矢量化相关函数?

python - python - 为什么在Python中使用Dictwriter输出时CSV文件在每个数据行之间包含一个空行

python - 将具有 NaN 的多列 Pandas 数据框转换为嵌套字典

java - 使对象显式垃圾收集的方法

java - 正则表达式如何获取/之后的所有内容

python - python 正则表达式模块中的递归正则表达式?

python - 如何将列表项转换为默认值为 0 的字典键?