序言
本來是在講解List接口系列的集合,但是接下來我要講的是那個HashSet,要明白HashSet就必須先要明白HashMap,所以在此出穿插一篇hashMap的文章,為了更好的學(xué)習(xí)HashSet。個人感覺初次看HashMap源碼比較難,但是明白了,其實也不是很難,
--WH
一、準(zhǔn)備工作。
建議:先去看一下我的另一篇講解hashcode的文章,讓自己知道為什么使用hashcode值進行查詢會很快。如果你已經(jīng)懂了hashcode的工作原理,那么就可以直接往下看了。http://www.cnblogs.com/whgk/p/6071617.html
1、鏈表散列
什么是鏈表散列呢?通過數(shù)組和鏈表結(jié)合在一起使用,就叫做鏈表散列。這其實就是hashmap存儲的原理圖。
2、hashMap的數(shù)據(jù)結(jié)構(gòu)和存儲原理
HashMap的數(shù)據(jù)結(jié)構(gòu)就是用的鏈表散列,大概是怎么存儲的呢?分兩步
1、HashMap內(nèi)部有一個entry的內(nèi)部類,其中有四個屬性,我們要存儲一個值,則需要一個key和一個value,存到map中就會先將key和value保存在這個Entry類創(chuàng)建的對象中。
//這里只看這一小部分,其他重點的在下面詳細(xì)解釋