/*集合 的體系:
------------| collection 單例集合的根介面
----------------| list 如果是實現了list介面的集合類,具備的特點: 有序,可重複。
-------------------| arraylist arraylist 底層是維護了乙個object陣列實現的。 特點: 查詢速度快,增刪慢。
-------------------| linkedlist linkedlist 底層是使用了鍊錶資料結構實現的, 特點: 查詢速度慢,增刪快。
-------------------| vector(了解即可) 底層也是維護了乙個object的陣列實現的,實現與arraylist是一樣的,但是vector是執行緒安全的,操作效率低。
----------------| set 如果是實現了set介面的集合類,具備的特點: 無序,不可重複。
-------------------| hashset 底層是使用了雜湊表來支援的,特點: 訪問速度快.
hashset的實現原理:
往haset新增元素的時候,hashset會先呼叫元素的hashcode方法得到元素的雜湊值 ,
然後通過元素 的雜湊值經過移位等運算,就可以算出該元素在雜湊表中 的儲存位置。
情況1: 如果算出元素儲存的位置目前沒有任何元素儲存,那麼該元素可以直接儲存到該位置上。
情況2: 如果算出該元素的儲存位置目前已經存在有其他的元素了,那麼會呼叫該元素的equals方法與該位置的元素再比較一次
,如果equals返回的是true,那麼該元素與這個位置上的元素就視為重複元素,不允許新增,如果equals方法返回的是false,那麼該元素執行 新增。
-------------------| treeset
*/class
person
@override
public
string tostring() ";
}@override
public
inthashcode()
@override
public
boolean
equals(object obj)
}public
class
demo2
}
HashSet的實現原理
hashset實現set介面,由雜湊表 實際上是乙個hashmap例項 支援。它不保證set 的迭代順序 特別是它不保證該順序恆久不變。此類允許使用null元素。hashset中不允許有重複元素,這是因為hashset是基於hashmap實現的,hashset中的元素都存放在hashmap的key上...
HashSet的實現原理
set的實現類的集合物件中不能夠有重複元素,hashset也一樣他是使用了一種標識來確定元素的不重複,hashset用一種演算法來保證hashset中的元素是不重複的,hashset採用雜湊演算法,底層用陣列儲存資料。預設初始化容量16,載入因子0.75 object類中的hashcode 的方法是...
HashSet的實現原理
hashset實際上是乙個hashmap例項,都是乙個存放鍊錶的陣列。它不保證儲存元素的迭代順序 此類允許使用null元素。hashset中不允許有重複元素,這是因為hashset是基於hashmap實現的,hashset中的元素都存放在hashmap的key上面,而value中的值都是統一的乙個固...