Collection子介面之二 Set介面

2021-10-01 19:25:42 字數 970 閱讀 6093

在set中判斷元素是否重複 使用equals() 方法 如果兩個物件的equals方法返回true 則他們的hashcode值應該也是相等的。

換句話來說:如果兩個物件的equals返回是true 但是hashcode不一致 則也會認為元素不重複

hashset 具有以下特點:

hashset集合判斷兩個元素相等的標準:兩個物件通過 hashcode() 方法比較相等,並且兩個物件的 equals() 方法返回值也相等。

對於存放在set容器中的物件,對應的類一定要重寫equals()和hashcode(object obj)方法,以實現物件相等規則。即: 「相等的物件必須具有相等的雜湊碼」 。

重寫 hashcode() 方法的基本原則

重寫 equals() 方法的基本原則

以自定義的customer類為例,何時需要重寫equals()?

所有的基本型別的包裝類 及string類都實現了乙個comparable介面。

在list內取出重複數字值,要求盡量簡單。

//方式一:

public

static

void

main

(string[

] args)

} list = newlist;

for(object obj : list)

}

//方式二:利用set集合的特點

public

static

void

main

(string[

] args)

list.

clear()

; list.

addall

(set)

;for

(object obj : list)

}

Collection子介面之二 Set介面

1 set介面是collection的子介面,set介面沒有提供額外的方法 2 set 集合不允許包含相同的元素,如果試把兩個相同的元素加入同乙個set 集合中,則新增操作失敗。3 set 判斷兩個物件是否相同不是使用 運算子,而是根據 equals 方法 1 hashset 是 set 介面的典型...

Collection子介面 List介面

3.常用實現類 4.原始碼分析 難點 4.2 linkedlist的原始碼分析 4.3 vector的原始碼分析 5.儲存的元素的要求 1.儲存的資料特點 儲存序的 可重複的資料。2.常用方法 記住 增 add object obj 刪 remove int index remove object ...

Collection子介面 Set介面

1.儲存的資料特點 無序的 不可重複的元素 具體的以hashset為例說明 無序性 不等於隨機性。儲存的資料在底層陣列中並非照陣列索引的順序新增,而是根據資料的雜湊值決定的。不可重複性 保證新增的元素照equals 判斷時,不能返回true.即 相同的元素只能新增乙個。2.元素新增過程 以hashs...