java網課|collection下的set
阿新 • • 發佈:2020-12-16
技術標籤:java筆記
P264 HashSet集合介紹
Set介面:
- extends Collection
- 不包含重複元素
- 沒有索引
- 不能使用普通for遍歷
HashSet類:
- implements Set
- 底層:雜湊表===》查詢速度很快!
- 不包含重複元素
-
【當add進重複元素時,第二次那個會預設不存進去】
- 沒有索引
- 不能使用普通for遍歷
-
用迭代器/增強for遍歷
//迭代器
Iterator<Integer>it=set.iterator();
while(it.hasNext()){
Integer n=it.next();
sout(n);
}
//增強for迴圈
for(Integer i:set){
sout(i);
}
- 無序集合,儲存/取出順序可能不一樣
-
按123add進去,取出來不一定是123
Hash值
雜湊值:
- 一個10進位制的整數,由系統隨機給出
- 物件的地址值(邏輯地址,模擬出來得到地址)不是資料實際儲存的實體地址
- 獲取物件的雜湊值:
-
int hashCode()
-
可以重寫,例如使地址都為1
-
此時若判斷p1==p2,也是false(實體地址不一樣
P266 hashset集合儲存資料的結構(雜湊表)
- 雜湊表=陣列+連結串列/陣列+紅黑樹(提高查詢的速度)
- 雜湊表特點:速度快
P267
set集合再呼叫add方法時,add方法會呼叫元素的hashCode方法和equals方法,判斷元素是否重複
add方法的實現步驟
認定相同:雜湊值相同+equals方法返回true===》不會存進集合中
認定不同:雜湊值不同+equals方法返回false===》會存進集合中