1. 程式人生 > >HashSet資料結構原理

HashSet資料結構原理

hashSet資料結構原理

hashset原始碼

從原始碼中發現HashSet原始碼內部維護一個HashMap變數,來看看add方法:
add方法

add新增的元素存放在HashMap中,其他方法結合原始碼分析,參考HashMap
HashMap資料結構分析連結:

特性

HashSet為什麼不能存放相同元素:
在HashMap的put API中,在存入一個元素時,會呼叫其hashcode方法計算hashcode值,然後在計算出存放entry陣列的index,當index相同時呼叫equals方法判斷是否是同一個元素,是則不能存放。
hashmap put API

其中i = (n - 1) & hash 為存入陣列的index

最後補充,本人才疏學淺,學識有限,有誤之處望積極指出,萬分感謝