首页 > 解决方案 > 多值哈希图的值的“大小或零”

问题描述

我有一个多值Hashmap(技术上是 a 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但说实话,并没有真正理解它。

标签: javacollectionshashmap

解决方案


使用Map.getOrDefault(Object key, V defaultValue).

返回指定key映射到的值,或者defaultValue如果此映射不包含键的映射。


推荐阅读