聲明:本欄目所使用的素材都是凱哥學(xué)堂VIP學(xué)員所寫(xiě)了赵,學(xué)員有權(quán)匿名,對(duì)文章有最終解釋權(quán)甸赃;凱哥學(xué)堂旨在促進(jìn)VIP學(xué)員互相學(xué)習(xí)的基礎(chǔ)上公開(kāi)筆記柿汛。
介紹:這個(gè)集合它的查找速度是比較快的
arrayList添加的速度大概是2秒,檢索速度大概是12秒埠对,而hash集合的添加大概是5秒苛茂,檢索速度大概是9毫秒,這就說(shuō)明hash 的檢索速度是非仇埃快的妓羊,hash 的好處就是檢索速度快,因?yàn)樗砑訑?shù)據(jù)的時(shí)候就早就做好你要檢索的準(zhǔn)備
它的原理就是:如下圖稍计,如果陸陸續(xù)續(xù)的加入數(shù)據(jù)到這個(gè)方法中躁绸,那它存儲(chǔ)的方式就是,首先有個(gè)數(shù)組臣嚣,你要查找D的話(huà)净刮,首先找到hashCode值,然后取模10硅则,取出來(lái)下標(biāo)是6就馬上定位到那里去淹父,它拿的是hashCode值來(lái)%10,如果能整除10就是0怎虫,如果不能就是1到9之間的余數(shù)
比方說(shuō)有序集合的檢索就是暑认,你要查找D在哪你要一個(gè)個(gè)問(wèn),這種效率就很低大审,而hash集合檢索的方式不跟這些一樣
Hash重復(fù)是什么意思蘸际?
如下圖:比方說(shuō)ABCDEF的存儲(chǔ),存儲(chǔ)長(zhǎng)度分為四格徒扶,存儲(chǔ)的時(shí)候ABCD都存儲(chǔ)進(jìn)去了粮彤,假如那存儲(chǔ)E的時(shí)候計(jì)算存儲(chǔ)到B的那個(gè)位置,而那里是有值的姜骡,那不可能把以前的值沖掉的导坟,那它就想到了單鏈形式,在B的下面掛一個(gè)E圈澈,假設(shè)F也在B的那個(gè)位置惫周,那就掛在E的下面,單鏈解決hash重復(fù)的問(wèn)題
重組是什么意思士败?
如下圖:數(shù)據(jù)量大的話(huà)就形成單鏈掛在這闯两,掛得多了數(shù)據(jù)量就大了褥伴,數(shù)據(jù)量大的話(huà)檢索就慢起來(lái)了,要一個(gè)個(gè)問(wèn)漾狼,那就很麻煩了重慢,所以要擴(kuò)容重組