集合框架Set介面之hashset

2021-07-11 13:00:13 字數 1787 閱讀 7390

1 set介面

public inte***ce set extends collection

乙個不包含重複元素的collection。更確切的說,set不包含滿足 e1.equal(e2)的元素對e1和e2,並且最多包含乙個null元素.

set介面不包含重複的元素,並且做多只能有乙個null值,而list可以允許重複的值

2hashset

public class hashset extends abstracset implements set cloneable.serializable

類實現set介面,由雜湊表(實際上是乙個hashmap例項)它不保證set的迭代順序;特別是它不保證該順序恆久不變。此類允許使用null元素。

* hashset實現類

* 1 不保證迭代順序

* 2 構造方法,底層是hashmap實行,雜湊表實現,例項預設初始容量是16,載入因子是0.75

* 載入因子的意思預設陣列的容量是16,當陣列儲存滿了75%以後,進行擴容

* 3 構造方法也可以設定指定容量和指定載入因子

* hashset(int initialcapacity,float loadfactor)

* 4 自定義物件是否重複的判斷條件是先判斷hashcode是否相等,如果hashcode不相等,那麼不是同乙個

* 物件,如果hashcode相等,那麼不一定是同乙個物件,那麼需要呼叫equal方法,進一步驗證,如果equal方法

* 返回true時,表明是同乙個物件,如果返回false,那麼表示不是乙個物件

/**

* 1 不允許重複,最多包含乙個空值

* 假如你要是插入乙個重複的值,是插不進去的

*@author mazhongyi

* */

public

class

setdemo );

for (string s : name)

}public

static

void

main(string args)

}class person

public

void

setname(string name)

public

intgetage()

public

void

setage(int age)

public

person(string name, int age)

public

person()

@override

public string tostring()

@override

public

inthashcode()

@override

public

boolean

equals(object obj) else

if (!name.equals(other.name))

return

false;

system.out.println("兩個物件相同");

return

true;

}}

輸出結果

2

21005219

666004

669151

1037532

1037532

兩個物件相同

一共有幾個元素4

馬忠義潘佩珠

集合框架之 set集合

物件重複是指物件裡面的變數的值都相等,並不定是位址。list集合儲存的型別是基礎型別還比較好辦,直接把list集合轉換成set集合就會自動去除。當set集合儲存的是物件型別時,需要在物件的實體類裡面重寫public boolean equals object obj 和 public int has...

集合框架之Set學習

前言 1 何為框架 可以理解為乙個基礎結構,在基礎結構上進行進一步開發會變得很方便。2 三種集合型別 集合 set 元素無序不可重複 列表 list 元素有序可重複 對映 map 鍵不可以重複,值可以重複 set是實現collection介面的乙個子介面。其常用的實現類有hashset linked...

API集合框架 Set集合之HashSet

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