集合框架之 set集合

2021-09-23 08:11:07 字數 1247 閱讀 6500

物件重複是指物件裡面的變數的值都相等,並不定是位址。list集合儲存的型別是基礎型別還比較好辦,直接把list集合轉換成set集合就會自動去除。

當set集合儲存的是物件型別時,需要在物件的實體類裡面重寫public boolean equals(object obj) {} 和 public int hashcode() {} 兩個方法。

/**

* 返回值代表容器中的具體位置的座標

*/@override

public int hashcode()

public boolean equals(object obj)

return false;

}/**

* 正數:後面的o比當前(this)大

* * 0代表相等

*/

@override

public int compareto(person o)

return num;

}

(一)hashset的底層資料結構是雜湊表

(二)確保元素唯一性的兩個方法,hashcode()和equals()方法。

(三)當呼叫add()方法向集合中存入物件的時候,先比較此物件與原有物件的雜湊值有沒有一樣的,如果都不一樣就直接存入;如果有與之相同的雜湊值,則要繼續比較這兩個物件是否為同乙個物件,此時就要呼叫物件的equals()方法了。

結論:只有hashcode的至相同時,才會呼叫equals()方法。

自然排序(comparable):

使得新增的元素自身具備排序規則,這種排序規則又被稱為自然排序

比較器排序(comparator):

作用:使得容器具有比較性

例舉比較器排序:

/**

* 定義乙個比較person的比較器

* 規則:先按姓氏、再按年齡

* 新主要條件、在次要條件;如果不按照這個規則來,那麼資料會丟失

* @author administrator

* */

class presoncomp implements comparator

return num; }

}

泛型的作用:

1.將執行時的異常轉移到編譯器

2.提公升了**的健壯性

例:已經將編譯器錯誤的錯誤注釋了

public class fanxindemo 

} }}

API集合框架 Set集合之HashSet

set集合中不允許有相同的元素,並且取出集合中的元素的方式只有一種 迭代器 雜湊表 用於儲存元素與雜湊值對應的關係的容器 一.雜湊表特點 二.雜湊演算法原理 hashcode方法 hash element 因此從這裡可以看出來當我們從雜湊表中取出元素的時候,會發現與我們儲存元素的順序不一樣 三.雜湊...

集合框架Set

1 hashset雜湊表儲存底層 2 list與set判斷重複物件的區別 3 集合框架treeset 的自然排序 比較器排序 一般來說 set是無序的 無下標 但是jdk1.8版本已經可以排序 1 hashset雜湊表儲存底層 set 會去除重複 資料結構是雜湊表 hashseths new has...

集合框架Set

元素是無序 存入和取出的順序不一定一致 元素不可以重複 hashset雜湊表儲存 底層資料結構是雜湊表 1.1hashset的元素不可重複 hashset元素是不可重複的,針對於基本資料型別以及string,引用資料型別 物件 去重需要重寫hashcode方法以及equals方法 論證 1.2has...