摘要:繼承自,繼承接口,接口繼承自。的也是使用的的的。中和方法理論上是常數時間的復雜度,前提是元素在中分散比較均勻。并且這些元素在結構中,根據進行了排序,所以用遍歷時可以按照遞增遞減順序。遍歷訪問元素的操作比更為高效,時間由元素數量決定。
java.util.Set
HashSet繼承自AbstractSet,繼承接口Set,Set接口繼承自Collection。
null是否可以放在Set中null可以放在Set中,并且最多只能有一個。null的hashcode是0。
HashSet用什么結構實現的HashSet用了一個HashMap。。。該HashMap默認的負載因子是0.75。
需要存入的對象作為HashMap的key存入,而value使用了一個公共靜態的ObjectPRESENT來填充。
HashSet的iterator也是使用的HashMap的key set的iterator。
HashSet中add、remove和contains方法理論上是常數時間的復雜度,前提是元素在bucket中分散比較均勻。迭代訪問其中元素的時間,則是元素數量+bucket容量,所以在迭代訪問操作比較重要時,不要將set的容量初始為很大。
HashSet不是線程安全的將其變為一個線程安全set的官方方法是:
Set s = Collections.synchronizedSet(new HashSet(...)TreeSet是用什么結構實現的
不出所料,是用TreeMap實現的。并且這些元素在結構中,根據comparator進行了排序,所以用iterator遍歷時可以按照遞增、遞減順序。
comparator在TreeSet中是比較關鍵的,這些元素要么是comparable,要么自己提供一個定制的comparator。并且comparator的實現一定要和equals方法一致。
對于add、remove和contains方法,理論上是log(n)時間復雜度。
LinkedHashSet與HashSet的區別LinkedHashSet繼承自HashSet,但是記錄了元素的插入順序,仍然具有原來HashSet常數時間復雜度操作的優勢,但是這些操作會比原來慢一些,用來維護這個順序。遍歷訪問元素的操作比HashSet更為高效,時間由元素數量決定。
一樣,LinkedHashSet用LinkedHashMap來實現。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67868.html
摘要:說到復盤基礎,并不是所有的都會復盤,沒那個時間更沒那個必要。比如,一些基礎的語法以及條件語句,極度簡單。思前想后,我覺得整個計劃應該從集合開始,而復盤的方式就是讀源碼。通常,隊列不允許隨機訪問隊列中的元素。 ?showImg(https://segmentfault.com/img/remote/1460000020029737?w=1080&h=711); 老讀者都知道,我是自學轉行...
摘要:集合類關系是和的父接口。相等必須是對稱的,約定只能和其它相等,亦然。和接口在中引入,這個單詞是和的合成,用來分割集合以給并行處理提供方便。這些并不立即執行,而是等到最后一個函數,統一執行。 集合類關系: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ...
摘要:在中引入該方法,用來替換中的每個元素。的方法,只能在或之后使用,也就是確保當前指向了一個存在的項。這里使用了,該方法可以將非對象先映射為型,然后進行比較。存儲的是有序的數組,所以劃分時會按照順序進行劃分。 java.util.List replaceAll 在Java8中引入該方法,用來替換list中的每個元素。 default void replaceAll(UnaryOpe...
摘要:一名年工作經驗的程序員應該具備的技能,這可能是程序員們比較關心的內容。數據結構和算法分析數據結構和算法分析,對于一名程序員來說,會比不會好而且在工作中能派上用場。 一名3年工作經驗的Java程序員應該具備的技能,這可能是Java程序員們比較關心的內容。我這里要說明一下,以下列舉的內容不是都要會的東西—-但是如果你掌握得越多,最終能得到的評價、拿到的薪水勢必也越高。 1、基本語法 這包括...
摘要:容器的類圖如下圖所示接口定義了存取一組對象的方法其子接口和分別定義了存儲方式。中的數據對象沒有順序且不可以重復。注意相等的對象應該具有相等的 Chap 6 常用類 focus on : 字符串相關類 (String, StringBuffer) 基本數據類型包裝類 Math類 File類 枚舉類 6.1 字符串相關類 String 類 -- java.lang.String 類...
閱讀 3284·2023-04-25 18:03
閱讀 1148·2021-11-15 11:38
閱讀 5550·2021-10-25 09:45
閱讀 846·2021-09-24 09:48
閱讀 2302·2021-09-22 15:34
閱讀 1742·2019-08-30 15:44
閱讀 2683·2019-08-30 13:12
閱讀 608·2019-08-29 16:05