在 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/