亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

大城县| 济宁市| 铅山县| 包头市| 阳信县| 石林| 辛集市| 奎屯市| 瓮安县| 双桥区| 扶沟县| 涞源县| 石屏县| 宁乡县| 永和县| 平南县| 长乐市| 平武县| 建始县| 定西市| 东至县| 黑水县| 乌海市| 新民市| 绩溪县| 江津市| 鹤山市| 若尔盖县| 大理市| 定日县| 晋宁县| 保山市| 恩平市| 桐乡市| 濉溪县| 康平县| 博野县| 靖西县| 西乌珠穆沁旗| 普陀区| 台湾省|