JAVA 集合子介面之Set

2021-08-26 02:52:27 字數 815 閱讀 7481

特點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...