我有以下代码:
int num = (map.get(result.getNumber()) != null ? map.get(result.getNumber()) : 0);我的问题是:
map.get是否执行了两次(一次用于评估,一次用于位置)?
我的目标是将get语句简化为单个调用。
注意:result.getNumber是可空的。
发布于 2015-09-01 07:20:01
是的,map.get被打了两次电话。只需创建一个局部变量,使用它来存储值。
Integer x = map.get(result.getNumber());
int num = (x != null ? x : 0);发布于 2015-09-01 07:39:40
在java 8中,getOrDefault方法被添加到Map接口中。如果不将null作为值存储在映射中,则可以使用以下代码:
int num = map.getOrDefault(result.getNumber(), 0);发布于 2015-09-01 07:20:45
只需将其存储在这样的变量中:-
Integer tempVar = map.get(result.getNumber());
int num = (tempVar != null ? tempVar : 0);https://stackoverflow.com/questions/32325659
复制相似问题