HashMap 的性能因子
生活随笔
收集整理的這篇文章主要介紹了
HashMap 的性能因子
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
參考目錄:
1. HashMap 散列初體驗(yàn)
2. 為什么HashMap 常用String 對象作key
3. HashMap 原理
4.自定義 hashCode()
5.HashMap 的性能因子
在實(shí)際應(yīng)用中,當(dāng)HashMap 默認(rèn)的查找速度與存儲速度不能滿足我們的需求時,我們可以通過手工調(diào)整HashMap 來提高性能,從而滿足我們對特定應(yīng)用的需求。在調(diào)整HashMap 之前有一些術(shù)語首先讓我們共同了解一下。
- 桶(bucket):表示實(shí)際散列表的數(shù)組。
- 容量:表示桶中的位數(shù)
- 初始容量:表在創(chuàng)建時所擁有的桶位數(shù)。HashMap 與 HashSet 都允許你在初始化的時候指定初始容量的大小
- 尺寸:表示當(dāng)前存儲的項(xiàng)數(shù)
- 負(fù)載因子:尺寸/容量。空表的負(fù)載因子是0,半滿表的負(fù)載因子是0.5,以此類推。負(fù)載輕的表產(chǎn)生沖突的可能性小,因此對于插入和查找都是最理想的狀態(tài)(但是會減慢使用迭代器遍歷的過程)。HashMap 與HashSet 都允許指定負(fù)載因子的構(gòu)造器,表示當(dāng)負(fù)載情況達(dá)到該負(fù)載因子的水平時,容器將會自動擴(kuò)容(增加桶位數(shù)),實(shí)現(xiàn)方式時使容量大致加倍,并重新將現(xiàn)有對象分布到新的桶位集中(這個過程被稱為再散列)
HashMap 使用的默認(rèn)的負(fù)載因子是0.75(也就是當(dāng)表達(dá)到四分之三容量時,就進(jìn)行散列),這個因子在時間和空間的代價之間達(dá)到了平衡。更高的負(fù)載因子可以降低表的空間,但是會增加查找代價,這樣做是很忌諱的,因?yàn)樵贖ashMap 中我們一般做的就是查詢與插入操作。
下面是HashMap 的構(gòu)造函數(shù):
HashMap() 構(gòu)造一個具有默認(rèn)初始容量 (16) 和默認(rèn)加載因子 (0.75) 的空 HashMap。 HashMap(int initialCapacity) 構(gòu)造一個帶指定初始容量和默認(rèn)加載因子 (0.75) 的空 HashMap。 HashMap(int initialCapacity, float loadFactor) 構(gòu)造一個帶指定初始容量和加載因子的空 HashMap。 HashMap(Map<? extends K,? extends V> m) 構(gòu)造一個映射關(guān)系與指定 Map 相同的新 HashMap。在初始化的時候HashMap 允許我們創(chuàng)建指定大小容量與負(fù)載因子的map 以滿足我們對特定的需求。
總結(jié)
以上是生活随笔為你收集整理的HashMap 的性能因子的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 治疗白内障吃什么药(治疗白内障最好的药)
- 下一篇: 设置Collection 或 Map 只