我想检查Map<Integer, Integer>
是否包含特定的key
。如果它存在于Map
中,则检索其对应的值。但它需要两个操作,如下所示。首先使用containsKey()
检查密钥是否存在。第二个操作是使用get()
进行检索。
int value = 0;
if(pageMap.containsKey(key)) {
value = pageMap.get(key);
}
因此我将int
替换为Integer
,以便我可以捕获get()
返回的值并检查null
。如果为null,则跳过IF
块,否则执行块内的代码。我不确定这是否是正确的方法,即使用Object Reference
数据类型代替primitive
数据类型,以最大限度地减少对Map的多次查询。这种方法的任何替代方案。
Integer value;
if((value = pageMap.get(key)) != null){
//execute code
}
答案 0 :(得分:2)
使用Java 8+,您可以使用:
int value = pageMap.getOrDefault(key, 0);
答案 1 :(得分:0)
你的代码是正确的,但我宁愿把它写成:
Integer value = pageMap.get(key);
if (value != null) {
// do something
}
地图真正包含的内容是对Integer
个对象的引用,因此除了少量库调用之外,还有更少的魔法&#34;一般来到这里。