91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java set有什么用

發布時間:2020-11-13 12:33:27 來源:億速云 閱讀:176 作者:小新 欄目:編程語言

小編給大家分享一下java set有什么用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

java.util.Set接口和java.util.List接口一樣,同樣繼承自Collection接口,它與Collection接口中的方法基本一致,并沒有對Collection接口進行功能上的擴充,只是比Collection接口更加嚴格了。與List接口不同的是,Set接口中元素無序,并且都會以某種規則保證存入的元素不出現重復。

Set集合有多個子類,這里我們介紹其中的java.util.HashSet、java.util.LinkedHashSet這兩個集合。

特點:都會以某種規則保證存入的元素不出現重復,Set接口中元素無序

①元素不出現重復

②元素無序( 指存取無序)

哈希表:只要往哈希表中存儲自定義對象,那么該自定義對象 所屬的類 必須重寫hashCode&equals方法

⑴HashSet集合

底層是通過HashMap實現的 底層new HashMap對象 ,只用了 key 并沒有使用 value value指向統一地址 new Object()

API介紹:

java.util.HashSet是Set接口的一個實現類,它所存儲的元素是不可重復的,并且元素都是無序的(即存取順序不一致)。java.util.HashSet底層的實現其實是一個java.util.HashMap支持,HashSet是根據對象的哈希值來確定元素在集合中的存儲位置,因此具有良好的存取和查找性能。保證元素唯一性的方式依賴于:hashCode與equals方法。

特點:

①元素不重復

②存取順序不一致

③良好的存取和查找性能

④元素唯一性的方式依賴于:hashCode與equals方法

HashSet集合存儲數據的結構(哈希表):

在JDK1.8之前,哈希表底層采用數組+鏈表實現,即使用鏈表處理沖突,

同一hash值的鏈表都存儲在一個鏈表里。但是當位于一個桶中的元素較多,

即hash值相等的元素較多時,通過key值依次查找的效率較低。

而JDK1.8中,哈希表存儲采用數組+鏈表+紅黑樹實現,

當鏈表長度超過閾值(8)時,將鏈表轉換為紅黑樹,這樣大大減少了查找時間。

總而言之,JDK1.8引入紅黑樹大程度優化了HashMap的性能,

那么對于我們來講保證HashSet集合元素的唯一,其實就是根據對象的

hashCode和equals方法來決定的。如果我們往集合中存放自定義的對象,

那么保證其唯一,就必須復寫hashCode和equals方法建立屬于當前對象的比較方式。

總結:1.8之前是通過 哈希表底層采用數組+鏈表實現

1.8中是通過哈希表存儲采用數組+鏈表+紅黑樹實現(鏈表長度超過閾值(8)時,將鏈表轉換為紅黑樹,這樣大大減少了查找時間)保證元素其唯一,必須重寫hashCode和equals方法建立屬于當前對象的比較方式

HashSet存儲自定義類型元素(重點):

給HashSet中存放自定義類型元素時,需要重寫對象中的hashCode和equals方法,

建立自己的比較方式,才能保證HashSet集合中的對象唯一

⑵LinkedHashSet

HashSet保證元素唯一,可是元素存放進去是沒有順序的,那么我們要保證有序,怎么辦呢,在HashSet下面有一個子類java.util.LinkedHashSet,它是鏈表和哈希表組合的一個數據存儲結構。

看完了這篇文章,相信你對java set有什么用有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

独山县| 贵港市| 陵川县| 金堂县| 崇左市| 邓州市| 怀安县| 眉山市| 砚山县| 上饶县| 阿合奇县| 新邵县| 阿鲁科尔沁旗| 仁寿县| 盐边县| 景东| 来凤县| 瑞金市| 区。| 长治县| 高青县| 南汇区| 磴口县| 重庆市| 茌平县| 监利县| 永靖县| 苍溪县| 浠水县| 涞源县| 甘泉县| 洪洞县| 揭东县| 南安市| 泾源县| 闵行区| 许昌市| 滨州市| 广水市| 正镶白旗| 大丰市|