我想检查 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 回答
使用Java 8,您可以使用:
你的代码是正确的,但我宁愿把它写成:
Map 真正包含的是对
Integer
对象的引用,因此除了少量库调用之外,一般来说,这里的内容更少"magic" .