加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Map.containsKey()有用吗?

发布时间:2020-12-15 02:50:00 所属栏目:Java 来源:网络整理
导读:参见英文答案 Is using java Map.containsKey() redundant when using map.get()6个 我想知道,在尝试访问它之前检查特定密钥是否有意义.例: Map myMap ....if myMap.containsKey(key) { Object value = myMap.get(key); .....} 不使用containsKey的示例: O
参见英文答案 > Is using java Map.containsKey() redundant when using map.get()6个
我想知道,在尝试访问它之前检查特定密钥是否有意义.例:
Map myMap ....
if myMap.containsKey(key) {
   Object value = myMap.get(key);
   .....
}

不使用containsKey的示例:

Object value = myMap.get(key);
if (value != null) {
 ......
}

编辑:澄清空键和值.假设该映射不允许空键和空值,因此这两个示例是相同的.

解决方法

是 – 键可以具有空值:
Map myMap = ...;
myMap.put("foo",null);
if (myMap.containsKey("foo")) {
   Object value = myMap.get(key); // value is null
}

Object value = myMap.get("foo");
if (value != null) {
    // you won't get here
}

您可以争辩(并且我同意),当他们第一次创建Java的集合API时,不区分空值和不存在的条目是一个非常糟糕的设计决策.

(有些地图 – 至少是HashtableConcurrentHashMap – 不允许空值,这使得containsKey不那么重要,但它仍然比m.get(k)== null提高了可读性.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读