2013-02-17 70 views
0

我是一個新的Java世界的Bie,我只想知道Hash Map的默認大小是10,並且它基於負載因子0.75然後發生衝突,並創建一個新的鏈接列表陣列並進行所有的洗牌。關於HashMap的性能,同時將一萬個對象放入它

但我的查詢是想什麼是地圖的性能時,我都會把10,000個對象在裏面,

爲前

Map map=new HashMap(); 

我怎樣才能把萬的對象,必須遵循任何針對循環爲請告知

for(1=0;1<=10,000,i++) 
{ 
} 

和第二什麼樣的影響將是有業績,也同時把對象也地圖上的表現有什麼影響。

+0

這一切都取決於你的哈希函數。它產生的散列碼越分散,你的地圖就越快;在完美的情況下,它根本不會降級......參見[Universal Hashing](http://en.wikipedia.org/wiki/Universal_hashing)。 – 2013-02-17 18:24:26

+1

如果您知道將會有10.000個項目,您可以使用['HashMap(int initialCapacity)'](http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html# HashMap(int))構造函數來避免插入時調整大小。 – jlordo 2013-02-17 18:24:28

回答

1

是可以循環,並把每一個對象在時間的HashMap ..

可以使用的HashMap(INT參數:initialCapacity)與initialCapacity..since一些價值較高的,你知道會有10000個對象...

性能從哈希表檢索取決於你的對象hashCode()方法的實現......

更多的哈希碼不同的對象返回將各種水桶平均分佈對象不同的值......這將導致更快的檢索時間...

請參閱如何HashMap的作品,這將給你一些想法:

http://javarevisited.blogspot.com/2011/02/how-hashmap-works-in-java.html

相關問題