亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

HashMap分析

2019-11-09 15:53:22
字體:
來源:轉載
供稿:網友
一 .概況1.概念和相關需要了解的基礎知識點1.1 HashMap也是我們使用非常多的Collection,它是基于哈希表(散列表)的 Map 接口的實現,以key-value的形式存在。在HashMap中,key-value總是會當做一個整體來處理,系統會根據hash算法來來計算key-value的存儲位置,我們總是可以通過key快速地存、取value。HashMap的底層實現還是數組(table)。1.2 散列表散列地址:數組的索引角標(table中的index)散列函數:散列表算法希望能盡量做到不經過任何比較,通過一次存取就能得到所查找的數據元素,因而必須要在數據元素的存儲位置和它的關鍵字(可用key表示)之間建立一個確定的對應關系,使每個關鍵字和散列表中一個唯一的存儲位置相對應。因此在查找時,只要根據這個對應關系找到給定關鍵字在散列表中的位置即可。這種對應關系被稱為散列函數(可用h(key)表示)。1.3常用的散列函數有(1)、直接定址法取關鍵字或關鍵字的某個線性函數值為散列地址,即:h(key) = key   或 h(key) = a * key + b其中a和b為常數。(2)、數字分析法(3)、平方取值法取關鍵字平方后的中間幾位為散列地址。(4)、折疊法將關鍵字分割成位數相同的幾部分(最后一部分的位數可以不同),然后取這幾部分的疊加和(舍去進位)作為散列地址。(5)、除留余數法取關鍵字被某個不大于散列表表長m的數p除后所得的余數為散列地址,即: h(key) = key MOD p    p ≤ m(6)、隨機數法選擇一個隨機函數,取關鍵字的隨機函數值為它的散列地址,即:h(key) = random(key)其中random為隨機函數。1.4、處理沖突1.4.1產生沖突的原因對不同的關鍵字可能得到同一散列地址,即key1 ≠ key2,而h(key1)= h(key2),這種現象稱為沖突。具有相同函數值的關鍵字對該散列函數來說稱作同義詞。在一般情況下,散列函數是一個壓縮映像,這就不可避免地會產生沖突,因此,在創建散列表時不僅要設定一個好的散列函數,而且還要設定一種處理沖突的方法。1.4.2解決沖突的方法(1)、開放定址法hi =(h(key) + di) MOD m     i =1,2,…,k(k ≤ m-1)其中,h(key)為散列函數,m為散列表表長,di為增量序列,可有下列三種取法:1)、di = 1,2,3,…,m-1,稱線性探測再散列;2)、di = 12,-12,22,-22,32,…,±k2 (k ≤m/2),稱二次探測再散列;3)、di = 偽隨機數序列,稱偽隨機探測再散列。(2)、再散列法hi = rhi(key)   i = 1,2,…,krhi均是不同的散列函數。(3)、鏈地址法將所有關鍵字為同義詞的數據元素存儲在同一線性鏈表中。假設某散列函數產生的散列地址在區間[0,m-1]上,則設立一個指針型向量void *vec[m],其每個分量的初始狀態都是空指針。凡散列地址為i的數據元素都插入到頭指針為vec[i]的鏈表中。在鏈表中的插入位置可以在表頭或表尾,也可以在表的中間,以保持同義詞在同一線性鏈表中按關鍵字有序排列。(4)、建立一個公共溢出區二.HashMap的詳細說明HashMap提供了三個構造函數:HashMap():構造一個具有默認初始容量 (16) 和默認加載因子 (0.75) 的空 HashMap。HashMap(int initialCapacity):構造一個帶指定初始容量和默認加載因子 (0.75) 的空 HashMap。HashMap(int initialCapacity, float loadFactor):構造一個帶指定初始容量和加載因子的空 HashMap。在這里提到了兩個參數:初始容量,加載因子。這兩個參數是影響HashMap性能的重要參數,其中容量表示哈希表中桶的數量,初始容量是創建哈希表時的容量,加載因子是哈希表在其容量自動增加之前可以達到多滿的一種尺度,它衡量的是一個散列表的空間的使用程度,負載因子越大表示散列表的裝填程度越高,反之愈小。對于使用鏈表法的散列表來說,查找一個元素的平均時間是O(1+a),因此如果負載因子越大,對空間的利用更充分,然而后果是查找效率的降低;如果負載因子太小,那么散列表的數據將過于稀疏,對空間造成嚴重浪費。系統默認負載因子為0.75,一般情況下我們是無需修改的。HashMap是一種支持快速存取的數據結構,要了解它的性能必須要了解它的數據結構。其內部的數據結構就是哈希表,也就是散列表而相關的特性在上面已經都列出了,這里做一個總結:(1)HashMap內部存儲使用的是哈希表(散列表),底層是數組(2)HashMap使用的散列表中散列函數為:直接定地址法(key的hashcode);解決沖突用的鏈地址法(3)默認初始容量 (16) 和默認加載因子 (0.75)(4)value作為key值的“附帶物“保存(5)數據在hashmap中的存,取過程:存:a.根據key的hashcode得到哈希值,再經int hash = hash(key.hashCode())得到其在table數組中的索引b.判斷索引位上有沒有數據,沒有就直接存;有看key是不是相同,若相同則新value值取代老value值,若不同則以鏈表的方式存入?。壕褪谴娴姆聪蜻^程,沒有就只能返回null(6)對于HashMap的table而言,數據分布均勻問題:最好每項都只有一個元素,這樣就可以直接找到,不能太緊也不能太松,太緊會導致查詢速度慢,太松則浪費空間.具體的分析參考:http://www.cnblogs.com/chenssy/p/3521565.html中的分析 參考:HashMap:http://www.cnblogs.com/chenssy/p/3521565.html 散列表:http://blog.csdn.net/npy_lp/article/details/7390378
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲性线免费观看视频成熟| 成人h视频在线观看播放| 久久视频国产精品免费视频在线| 欧美日韩成人在线观看| 亚洲aⅴ男人的天堂在线观看| 黑丝美女久久久| 亚洲欧洲xxxx| 久久久久久久久国产| 97视频com| 亚洲高清免费观看高清完整版| 另类专区欧美制服同性| 亚洲一品av免费观看| 国产视频精品xxxx| 亚洲人成在线免费观看| 亚洲成人久久网| 亚洲欧美精品一区| 国产精品大陆在线观看| 久久久精品在线观看| 欧美高清视频在线| 国产成人亚洲精品| 97婷婷大伊香蕉精品视频| 久久综合亚洲社区| 伊人亚洲福利一区二区三区| 日本午夜在线亚洲.国产| 日韩成人在线免费观看| 色综合久久久888| 欧美一级视频在线观看| 911国产网站尤物在线观看| 51久久精品夜色国产麻豆| 91精品国产91久久久久久最新| 中文字幕av一区| 亚洲一区二区三区四区在线播放| 亚洲精品在线看| 成人免费xxxxx在线观看| 成人a免费视频| 欧美日韩人人澡狠狠躁视频| 欧美在线性视频| 日韩精品在线电影| 久久69精品久久久久久国产越南| 琪琪第一精品导航| 亚洲最大成人在线| www.欧美精品| 欧美另类极品videosbestfree| 欧美激情成人在线视频| 国产成人在线视频| 亚洲精品在线观看www| 国产精品高潮呻吟久久av黑人| 欧美超级免费视 在线| 一区二区欧美日韩视频| 国产精品高潮粉嫩av| 亚洲伊人一本大道中文字幕| 国产精品偷伦免费视频观看的| 亚洲片国产一区一级在线观看| 原创国产精品91| 久久久免费精品| 中文字幕日韩在线观看| 2019最新中文字幕| 91在线免费看网站| 日韩经典中文字幕| 综合网中文字幕| 亚洲自拍高清视频网站| 国产成人一区二区三区电影| 亚洲国产成人精品一区二区| 九九精品视频在线观看| 国内精品久久久久久| 日韩久久免费视频| 97成人精品视频在线观看| 日韩有码在线播放| 最近更新的2019中文字幕| 国产日韩欧美在线| 国产精品成久久久久三级| 亚洲天堂免费视频| 国产主播喷水一区二区| 91av在线视频观看| 欧美日韩国产页| 日韩有码片在线观看| 亚洲天堂开心观看| 中文字幕久热精品在线视频| 国产一区二区三区毛片| 国产精品久久久久久久久男| xvideos亚洲人网站| 国产在线视频不卡| 隔壁老王国产在线精品| 久久久久久久激情视频| 亚洲性视频网站| 中文字幕亚洲一区二区三区| 岛国精品视频在线播放| 亚洲欧美日韩国产精品| 久久久久久久久爱| 米奇精品一区二区三区在线观看| 欧美激情一区二区三区成人| 欧美激情2020午夜免费观看| 国产69精品久久久| 精品女同一区二区三区在线播放| 亚洲欧美在线一区二区| 精品国内自产拍在线观看| 欧美日韩免费看| 国产精品久久久久久久7电影| 久久成年人免费电影| 国产一区二区三区18| 欧美中文在线观看国产| 亚洲二区在线播放视频| 国产精品爽爽爽爽爽爽在线观看| 欧美激情视频给我| 国产国语videosex另类| 国产精品69久久| 欧美成年人在线观看| 91免费电影网站| 亚洲va男人天堂| 久久国产精品久久久久久| 精品视频—区二区三区免费| 久久夜色精品国产欧美乱| 成人中文字幕在线观看| 992tv在线成人免费观看| 韩国一区二区电影| 欧美国产精品va在线观看| 日韩精品视频在线播放| 亚洲欧美国产日韩中文字幕| 日韩亚洲综合在线| 欧美在线观看一区二区三区| 亚洲国产精品va在线观看黑人| 欧美日韩性视频| 精品久久久久久亚洲国产300| 高清日韩电视剧大全免费播放在线观看| 久久天天躁狠狠躁夜夜爽蜜月| 亚州欧美日韩中文视频| 亚洲午夜未删减在线观看| 久久久人成影片一区二区三区观看| 色婷婷综合久久久久| 国产精品v日韩精品| 日韩精品极品毛片系列视频| 日韩欧美在线观看视频| 亚洲精品www久久久久久广东| 精品网站999www| 日本欧美国产在线| 国产91精品视频在线观看| 亚洲电影中文字幕| 亚洲精品在线不卡| 日韩一区二区三区在线播放| 日韩日本欧美亚洲| 在线观看国产欧美| 伊人久久大香线蕉av一区二区| 日韩精品视频中文在线观看| 亚洲国产福利在线| 4p变态网欧美系列| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久久在线视频| 国产亚洲精品久久久久动| 中文字幕日韩av| 97国产精品视频人人做人人爱| 成人写真福利网| 久久99热精品| 中文字幕欧美日韩va免费视频| 51ⅴ精品国产91久久久久久| 久久久91精品| 色久欧美在线视频观看| 欧美激情在线观看| 亚洲视频一区二区| 欧美一级电影久久| 国产日韩欧美在线视频观看| 成人免费看片视频| 成人在线观看视频网站| 亚洲第一在线视频| 这里精品视频免费|