【发布时间】:2015-07-25 02:16:30
【问题描述】:
在 Java 中,您可以创建一个新的 HashMap 来保存特定数量的项目,如下所示:
Map m = new HashMap(100);
Guava 提供了一个Maps.newHashMapWithExpectedSize(int) 方法,我希望它可以简单地调用HashMap(int)。但它不这样做,而是计算自己的容量并使用它。
为什么newHashMapWithExpectedSize 做自己的事情,为什么我要使用它而不是直接调用new HashMap(int)?
【问题讨论】:
-
我的回答涵盖了这一点,但这里的根本问题是 JDK API 很糟糕,因为它没有像您期望的那样调整
HashMap“以容纳特定数量的项目”的大小将。相反,它将其大小调整为您指定的数字的 75%。
标签: java collections guava