我有以下代码:
int num = (map.get(result.getNumber()) != null ? map.get(result.getNumber()) : 0);
我的问题是:
map.get
执行了两次(一次用于评估,一次用于放置)?
我的目标是将get
语句缩减为单个调用。
注意:result.getNumber
可以为空。
答案 0 :(得分:3)
在java 8中,getOrDefault
方法被添加到Map
接口。如果您未在地图中存储null
作为值,则可以使用以下代码:
int num = map.getOrDefault(result.getNumber(), 0);
答案 1 :(得分:1)
是的,map.get
被调用两次。只需创建一个局部变量,用它来存储值。
Integer x = map.get(result.getNumber());
int num = (x != null ? x : 0);
答案 2 :(得分:0)
只需将其存储到如下变量中: -
Integer tempVar = map.get(result.getNumber());
int num = (tempVar != null ? tempVar : 0);