1. 程式人生 > 其它 >java網課|collection下的set

java網課|collection下的set

技術標籤: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方法的實現步驟

  1. List item
  2. List item
    認定相同:雜湊值相同+equals方法返回true===》不會存進集合中
    認定不同:雜湊值不同+equals方法返回false===》會存進集合中