HashMap如何保證集合元素的唯一性

2021-10-08 06:28:45 字數 658 閱讀 9798

hashmap如何保證集合元素的唯一性?

為了更好的了解hashmap如何保證元素的唯一性,我們首先需要知道hashmap的底層結構

hashmap集合在jdk1.8之前底層是由陣列+鍊錶組成,jdk1.8之後是由陣列+鍊錶+紅黑樹組成。hashmap在使用put方法儲存元素時,會建立乙個初始大小為16的陣列,當陣列儲存元素達到初始容量大小*負載因子(0.75)時,就會進行擴容為32,最大為64。當同乙個位置的雜湊值相等時,就會以鍊錶的方式儲存,當鍊表中的元素大於8時,該鍊錶就會轉化為乙個紅黑樹。

1.hashmap在儲存元素時,首先會呼叫該元素的hashcode()方法進行計算對應的雜湊值。

2.判斷該雜湊值位置上是否有相同的雜湊值元素,如果沒有相同的元素,就直接儲存,如果有相同的雜湊值元素,就產生雜湊衝突。

3.如果產生了雜湊衝突,那麼就得呼叫該元素的equals()方法與該雜湊值位置上的元素一一比較,如果沒有相同的元素,就儲存。如果有相同的元素就不儲存。

hashmap是用雜湊表來保證元素的唯一性,而雜湊表的底層又是依靠equals()方法和hashcode()方法來保證元素的唯一性。

Set集合是如何保證元素不重複

在使用集合的時候,會經常用到set集合,set集合的特點如下 1,元素無序 2,元素不可重複 那麼set集合底層是如何保證元素無序的呢?1,在往set集合中新增物件的時候,首先會通過該物件的hashcode方法計算該物件的hash值。2,將計算出來的hash值去hash表中查詢,如果hash表中不存...

HashSet集合是如何保證元素的唯一性的?

hashset 集合的特點是元素無序和不重複 首先,hashset 的底層資料結構是雜湊表。雜湊表就是儲存一系列雜湊值的表,而雜湊值是由物件的 hashcode 方法生成的。確保元素唯一性的兩個方法,hashcode 和equals 方法。當呼叫 add 方法向集合中存入物件的時候,先比較此物件與原...

HashSet集合是如何保證元素的唯一性的

hashset集合的特點是元素無序和不重複 首先,hashset的底層資料結構是雜湊表。雜湊表就是儲存一系列雜湊值的表,而雜湊值是由物件的hashcode 方法生成的。確保元素唯一性的兩個方法,hashcode 和equals 方法。當呼叫add 方法向集合中存入物件的時候,先比較此物件與原有物件的...