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

2021-08-20 08:34:00 字數 639 閱讀 1360

一:arraylist的contains方法

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

二:hashset的add/contains等方法

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

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

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

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

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

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

元素唯一性原理判斷

判斷集合元素唯一的原理

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

HashSet保證元素唯一原理

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

Java學習之集合元素刪除

一 刪除集合元素的幾種有效方法 1.倒過來遍歷list for int i list.size 1 i 0 i 二 concurrentmodificationexception異常 併發修改concurrentmodificationexception錯誤是開發中乙個常見錯誤,多發生在對乙個col...