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 因此從這裡可以看出來當我們從雜湊表中取出元素的時候,會發現與我們儲存元素的順序不一樣 三.雜湊...