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