特點1:無序,儲存的元素與新增順序無關特點2:不可重複(使用元素的equals方法來判定是否重複)
特點3:能儲存null元素,只能儲存一次。
hash演算法機制set集合在新增或檢視元素時,當集合中的元素過多時,就會進行多次的比較,效率變低。為了提高效率,在設計元素型別時,提供hash演算法,用於返回物件的乙個int值。在記憶體中開闢很多小的區域,用於儲存一定範圍返回值的物件。
當我們想新增元素或檢視元素時,先計算此元素的返回值,然後去相應區域中查詢遍歷,
如果在這個區域沒有找到物件,說明集合中可以儲存這個物件。如果有,然後檢視兩個物件的equals的返回值。
equals返回值為true,不能新增
equals返回值為false,可以新增,新增至對應的單向鍊錶結構中(盡可能的避免發生)
hashset:通過實現hash演算法的一種資料結構,無序,不重複。增加/刪除時效率高。linkedhashset:通過實現hash演算法的一種資料結構,但是通過鍊錶來維持順序。
順序與新增順序一致,在檢視檢索時效率比較高。
treeset:是sortedset子介面的實現類,使用二叉樹的資料結構儲存資料並維護元素的順序。
因為set集合是無序的,無下標可言,因此不能使用經典for迴圈。我們可以使用迭代器原理。(1)呼叫集合的iterator()獲取迭代器
(2)使用foreach迴圈
Java之Set集合詳解
set是無序 無下標 不重複的 新增字串 建立乙個hashset hashsetset new hashset 新增 boolean add set add d boolean add2 set add d set.add a set.add a set.add b set.add c system...
Set集合介面
set介面 set集合就像是乙個罐子,一旦把物件 丟進去 多個物件之間就沒有順序,set元素不可以重複 set判斷兩個物件是否相同不是使用 而是使用equals set t new hashset t.add aa t.add new string aa system.out.println t.a...
集合框架Set介面之hashset
1 set介面 public inte ce set extends collection 乙個不包含重複元素的collection。更確切的說,set不包含滿足 e1.equal e2 的元素對e1和e2,並且最多包含乙個null元素.set介面不包含重複的元素,並且做多只能有乙個null值,而l...