我有一个多值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

10-07 12:09