大咪
TA貢獻785條經驗 獲得超332個贊
hashset是set的實現類,set是接口,set下面最主要的實現類就是hashset(也就是用的最多的),除此之外的實現類還有linkedhashset,treeset.......
//Set存儲的元素是無序的,是不可重復的!
hashset特點:
//1.無序性:無序性 != 隨機性。真正的無序性,指的是元素在底層存儲的位置是無序的。(根據hash值來存)
//2.不可重復性:當向Set中添加進相同的元素的時候,后面的這個不能添加進去。
//說明:要求添加進Set中的元素所在的類,一定要重寫equals()和hashcode()方法。進而保證set中元素的不可重復性!
//set中的元素時如何存儲的呢?使用了哈希算法。
//當向set中添加元素時,首先調用此對象所在類的hashCode()方法,計算此對象的hash值,此哈希值決定了此對象在set中的存儲位置,若此位置之前沒有對象存儲,則此對象直接存到這個位置。(就好比一個教室,按號入座一樣),若已有對象存儲,在通過equals()方法比較這兩個對象的是否相同,如果相同后一個對象不能再添加進來。
//萬一返回false呢?都存儲。(不建議如此)
//>要求:hashcode()方法要與equals()方法一致。
查看完整回答