確定的預期數量,這裏是我的情況:選擇一個HashSet的初始容量與獨特的價值觀和插入
我有美國的數組,其中可能包含重複。爲了擺脫重複,我可以將它們全部添加到Set。
但是,當我創建Set時,它需要定義初始容量和加載因子,但是應該設置什麼?
從谷歌上搜索,我想出了:
String[] allStates = getAllStates();
Set<String> uniqueStates = new HashSet<String>(allStates.length, 0.75);
的問題,這一點,是allStates可在1個5000狀態之間anwhere包含。因此,該設置將具有超過5000的容量,但僅包含最多50個。
因此,可選地設置該設置的最大尺寸可以被設置爲狀態的最大數目,並且負載因子爲1。
我想我的問題確實在:
- 你應該怎麼設置的初始容量是當你不知道有多少項目是在設置?
- 當它可以包含的最多數量是50時,它設置的是否真的很重要?
- 我應該甚至擔心它嗎?
現貨。擔心只有在成爲問題時的性能 – basszero 2009-02-19 11:51:47
那麼,明智地避免性能問題,但不要微觀優化。 – 2009-02-19 12:14:30