【发布时间】:2009-02-19 11:40:48
【问题描述】:
好的,这是我的情况:
我有一个状态数组,其中可能包含重复项。为了摆脱重复,我可以将它们全部添加到一个集合中。
但是,当我创建 Set 时,它希望定义初始容量和负载因子,但是应该将它们设置为什么?
通过谷歌搜索,我想出了:
String[] allStates = getAllStates();
Set<String> uniqueStates = new HashSet<String>(allStates.length, 0.75);
问题在于 allStates 可以包含 1 到 5000 个状态。所以 Set 的容量将超过 5000,但最多只能包含 50 个。
因此,或者将 Set 的最大大小设置为最大状态数,并将负载因子设置为 1。
我想我的问题确实是:
- 当您不知道 Set 中有多少项目时,您应该将初始容量设置为多少?
- 当它可以包含的最大值是 50 时,设置为什么真的很重要吗?
- 我应该担心吗?
【问题讨论】: