HashSet應用特點
1. HashSet底層是使用HashMap實現的。當使用add方法將對象添加到Set當中時,
實際上是將該對象作爲底層所維護的Map對象的key,而value則都是同一個Object對象;
2. HashMap底層維護一個數組,我們向HashMap中所放置的對象實際上是存儲在該數
組當中;
3. 當向HashMap中put一對鍵值時,它會根據key的hashCode值計算出一個位置,
該位置就是此對象準備往數組中存放的位置。
4. 如果該位置沒有對象存在,就將此對象直接放進數組當中;如果該位置已經有對象
存在了,則順着此存在的對象的鏈開始尋找(Entry類有一個Entry類型的next成員
變量,指向了該對象的下一個對象),如果此鏈上有對象的話,再去使用equals方
法進行比較,如果對此鏈上的某個對象的equals方法比較爲false,則將該對象放到
數組當中,然後將數組中該位置以前存在的那個對象鏈接到此對象的後面。
5. HashMap的內存實現佈局:
|
|||||