我有一个多值Hashmap
(从技术上说是LinkedHashMap
):
private LinkedHashMap<String, ArrayList<BodyPart>> bodyParts = new LinkedHashMap<>();
我想找到与给定键关联的值的数量。但是,如果键不存在,
bodyParts.get("sample key")
将返回null
,而我希望它返回0(因为与该键关联的值为零)。我可以在
if
语句中屏蔽它:int numberOfValues;
if(bodyParts.containsKey("sample"){
numberOfValues = bodyParts.get("sample").size();
}
但我想知道是否有更简单/更好的方法呢?我已经阅读了
computeIfPresent
的文档,但实际上,我并没有真正理解它。 最佳答案
使用Map.getOrDefault(Object key, V defaultValue)
。
返回指定的key
映射到的值,如果此映射不包含键的映射,则返回defaultValue
。