日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HashMap 的性能因子

發(fā)布時間:2024/9/30 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。