选择具有预期数量的唯一值和插入的哈希集的初始容量
好的,这是我的情况:
我有一个状态数组,其中可能包含重复项。为了摆脱重复项,我可以将它们全部添加到集合中。
但是,当我创建 Set 时,它希望定义初始容量和负载因子,但应将它们设置为什么?
通过谷歌搜索,我想出了:
String[] allStates = getAllStates();
Set<String> uniqueStates = new HashSet<String>(allStates.length, 0.75);
这样做的问题是,allStates可以包含1到5000个州之间的状态。因此,该套装的容量将超过5000,但最多只能包含50。
因此,也可以将 Set 的最大大小设置为最大状态数,并将负载因子设置为 1。
我想我的问题真的是:
- 当您不知道集合中有多少个项目时,应将初始容量设置为什么?
- 当它所能包含的最大值为50时,它被设置为什么真的重要吗?
- 我甚至应该担心它吗?