Hashset的實現(xiàn)原理:
Hashset底部是哈希表支持的毫痕,存取速度快
? ? ? ? 往hashset添加元素的時候烛恤,Hashset會先調(diào)用元素的HashCode方法得到元素的哈希值饵溅,然后通過元素的哈希值經(jīng)過移位等運算,就可以算出該元素在哈希表中的位置迄汛。
算出存儲位置之后莫辨,分兩種情況:
? ? ? ? 第一種情況:如果算出元素的存儲位置目前沒有任何元素存儲·那么該元素可以直接存儲到該位置上。
? ? ? ? 第二種情況:如果算出該元素的存儲位置目前已經(jīng)存在有其他元素了结啼,那么會調(diào)用該元素的equals方法與該位置上的元素進行比較掠剑,如果equals返回的是true,那么該元素與這個位置上的元素就視為重復元素郊愧,不允許添加朴译,如果equals返回的是false,那么該元素進行添加属铁。