java - 多值 HashMap 值的 "Size or zero"

标签 java collections hashmap

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

Returns the value to which the specified key is mapped, or defaultValue if this map contains no mapping for the key.

关于java - 多值 HashMap 值的 "Size or zero",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56325860/

相关文章:

java - BufferedWriter 不写入文件

java - Lotus Notes 在导出为 EML 之前删除 header 字段

java - 监控 JVM 的非堆内存使用情况

java - 我应该避免使用从 Java 8 开始的迭代器吗?它们还有适当的用途吗?

java - 如何对对象集合进行正确排序,以便可以对图表中的数量进行总计

java - 我是否应该将返回类型重命名为更通用的名称以便重用它?

java - Geotools 在 SimpleFeatureCollection 上嵌套循环

java - 如何从 Java 中的 map 列表中获取所有值?

具有相同键的 Python 字典排序

Java - 添加一个对象而不引用原始对象