【发布时间】:2013-08-20 23:10:42
【问题描述】:
对于我知道要插入 1000 个整数以防止需要进行任何内部重建的 HashSet,我应该使用什么初始容量?
起初我认为我应该使用 1000,但阅读了构造函数的描述,该构造函数带有 initialCapacity 参数,它说Constructs a new, empty set; the backing HashMap instance has the specified initial capacity and default load factor (0.75).。
所以如果我将容量设置为 1000,hashMap 将在达到 750 个元素时调整大小?
我还假设 hashMap 的有效性需要一些“空间”,因此解决 IC*0.75=1000 以获得类似 1334 的结果也可能不是最佳解决方案,或者是吗?
更新:
1) 我知道内部调整大小的意义并不重要,但它仍然是一个学习和更好地理解我正在使用的环境的机会。并且努力应该是最小的。
2) 关于数据结构选择的几个cmets。请在此处查看我之前的 Q:Data structure recommendation,其中提供了有关我的场景的更准确信息。
【问题讨论】:
-
你要插入超过 1000 个整数吗?
-
那你为什么不使用这个构造函数呢?
HashSet(int initialCapacity, float loadFactor) -
那几纳秒对你来说一定很重要。
-
@KevinBowersox 我将准确插入 1000 个整数。
-
如果您知道您将使用 1000 个整数并且您非常努力地避免重建,那么更具体的数据结构是否合适?
标签: java data-structures hashmap hashset