判斷集合元素唯一的原理

2021-10-02 21:25:54 字數 686 閱讀 2004

一、arraylist的contains方法判斷元素是否重複原理

arraylist的contains方法會使用呼叫方法時,傳入的元素的equals方法依次與集合中的舊元素所比較,從而根據返回的布林值判斷是否有重複元素。此時,當arraylist存放自定義型別時,由於自定義型別在未重寫equals方法前,判斷是否重複的依據是位址值,所以如果想根據內容判斷是否為重複元素,需要重寫元素的equals方法。

二、hashset的add/contains等方法判斷元素是否重複原理

set集合不能存放重複元素,其新增方法在新增時會判斷是否有重複元素,有重複不新增,沒重複則新增。

hashset集合由於是無序的,其判斷唯一的依據是元素型別的hashcode與equals方法的返回結果。規則如下:

先判斷新元素與集合內已經有的舊元素的hashcode值

如果不同,說明是不同元素,新增到集合。

如果相同,再判斷equals比較結果。返回true則相同元素;返回false則不同元素,新增到集合。

所以,使用hashset儲存自定義型別,如果沒有重寫該類的hashcode與equals方法,則判斷重複時,使用的是位址值,如果想通過內容比較元素是否相同,需要重寫該元素類的hashcode與equals方法。

Java之判斷集合元素唯一原理

一 arraylist的contains方法 arraylist的contains方法會使用呼叫方法時,傳入的元素的equals方法依次與集合中的舊元素所比較,從而根據返回的布林值判斷是否有重複元素。此時,當arraylist存放自定義型別時,由於自定義型別在未重寫equals方法前,判斷是否重複的...

HashSet保證元素唯一原理

1.hashset保證元素唯一原理 依賴於hashcode 和equals 方法 2.唯一原理 2.1 當hashset集合要儲存元素的時候,會呼叫該元素的hashcode 方法計算雜湊值 2.2 判斷該雜湊值對應的位置上,是否有元素 2.3 如果該雜湊值位置上沒有元素,那麼就直接儲存該元素 2.4...

Set集合元素的唯一性

hashset實現 set 介面,所以hashset保證元素唯一性的做法與set的做法一致,下面用hashset為例子來說明set集合是如何確保元素的唯一性的。public static void main string args 輸出的結果為 1,2,3 從上面這段 可以看到,這裡往integer...