首页 文章

单个操作来检查密钥并获取Java Map

提问于
浏览
0

我想检查 Map<Integer, Integer> 是否包含特定的 key . 如果它存在于 Map 中,则检索其对应的值 . 但它需要两个操作,如下所示 . 首先使用 containsKey() 检查密钥是否存在 . 第二个操作使用 get() 进行检索 .

int value = 0;
    if(pageMap.containsKey(key)) {
        value = pageMap.get(key);
    }

所以我用 Integer 替换 int 所以我可以捕获从 get() 返回的值并检查 null . 如果为null,则跳过 IF block,否则执行块内的代码 . 我不确定这是否是正确的方法,即使用 Object Reference 数据类型代替 primitive 数据类型以最小化Map上的多个查询 . 这种方法的任何替代方案 .

Integer value;
    if((value = pageMap.get(key)) != null){            
        //execute code
    }

2 回答

  • 0

    使用Java 8,您可以使用:

    int value = pageMap.getOrDefault(key, 0);
    
  • 2

    你的代码是正确的,但我宁愿把它写成:

    Integer value = pageMap.get(key);
    if (value != null) {
        // do something
    }
    

    Map 真正包含的是对 Integer 对象的引用,因此除了少量库调用之外,一般来说,这里的内容更少"magic" .

相关问题