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什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

膠囊是一種三維幾何圖形,由一個圓柱體和兩端各一個半球體組成。膠囊的體積可以通過將圓柱體的體積和兩端半球體的體積相加來計算。本教程將討論如何使用不同的方法在Java中計算給定膠囊的體積。 膠囊體積公式 膠囊體積的公式如下: 膠囊體積 = 圓柱體體積 兩個半球體體積 其中, r: 半球體的半徑。 h: 圓柱體的高度(不包括半球體)。 例子 1 輸入 半徑 = 5 單位 高度 = 10 單位 輸出 體積 = 1570.8 立方單位 解釋 使用公式計算體積: 體積 = π × r2 × h (4
