摘要:存儲(chǔ)元素實(shí)際為存儲(chǔ)的鍵值對(duì)為的,為固定對(duì)象遍歷方式支持正向反向迭代器遍歷和遍歷順序迭代器實(shí)現(xiàn)順序遍歷實(shí)現(xiàn)逆序遍歷反向迭代器實(shí)現(xiàn)
HashSet & TreeSet小結(jié) 聲明
文章均為本人技術(shù)筆記,轉(zhuǎn)載請(qǐng)注明出處:https://segmentfault.com/u/yzwall
HashSet小結(jié) HashSet簡(jiǎn)介HashSet是一個(gè)沒(méi)有重復(fù)元素的集;
HashSet可以存儲(chǔ)null元素,不保證元素插入順序;
HashSet線程不安全的(由于底層由HashMap實(shí)現(xiàn));
HashSet底層采用HashMap存儲(chǔ):private transient HashMap
由于HashMap中key不可重復(fù),從而實(shí)現(xiàn)HashSet元素不可重復(fù);
HashSet支持迭代器和foreach兩種遍歷方式:
// 遍歷HashSet:迭代器實(shí)現(xiàn) Iterator iter = set.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } // 遍歷HashSet:foreach實(shí)現(xiàn) for (Integer i : set) { System.out.println(i); }TreeSet小結(jié)
TreeSet是一個(gè)有序集,基于TreeMap實(shí)現(xiàn),是線程不安全的;
TreeSet有序性實(shí)現(xiàn)TreeSet支持兩種兩種排序方式,通過(guò)不同構(gòu)造器調(diào)用實(shí)現(xiàn)
自然排序:
public TreeSet() { // 新建TreeMap,自然排序 this(new TreeMap()); }
Comparator排序:
public TreeSet(Comparator super E> comparator) { // 新建TreeMap,傳入自定義比較器comparator this(new TreeMap<>(comparator)); }TreeSet底層實(shí)現(xiàn)
TreeSet底層采用TreeMap存儲(chǔ),構(gòu)造器啟動(dòng)時(shí)新建TreeMap。TreeSet存儲(chǔ)元素實(shí)際為TreeMap存儲(chǔ)的鍵值對(duì)為
TreeSet支持正向/反向迭代器遍歷和foreach遍歷
// 順序TreeSet:迭代器實(shí)現(xiàn) Iterator iter = set.iterator(); while (iter.hasNext()) { System.out.println(iter.next()); } // 順序遍歷TreeSet:foreach實(shí)現(xiàn) for (Integer i : set) { System.out.println(i); } // 逆序遍歷TreeSet:反向迭代器實(shí)現(xiàn) Iterator iter1 = set.descendingIterator(); while (iter1.hasNext()) { System.out.println(iter1.next()); }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/67007.html
摘要:中所有方法都是直接或者間接同步的,所以是線程安全的即多個(gè)線程操作同一個(gè)對(duì)象時(shí)是線程安全的,但是只有一個(gè)線程操作時(shí)考慮到同步控制會(huì)耗費(fèi)系統(tǒng)資源所以效率低。中的所有方法都是線程非同步的,但有多個(gè)線程操作時(shí)是不安全的。 雖是讀書(shū)筆記,但是如轉(zhuǎn)載請(qǐng)注明出處http://segmentfault.com/blog/exploring/ ..拒絕伸手復(fù)制黨 容器之間的區(qū)別通常歸結(jié)為:由什么在背...
摘要:使用默認(rèn)隨機(jī)源對(duì)指定列表進(jìn)行置換。將集合排序使用二分搜索法搜索指定列表,以獲得指定對(duì)象根據(jù)元素的自然順序,返回給定的最大元素。 1_Map集合概述和特點(diǎn) A:Map接口概述 查看API可以知道: 將鍵映射到值的對(duì)象 一個(gè)映射不能包含重復(fù)的鍵 每個(gè)鍵最多只能映射到一個(gè)值 B:Map接口和Collection接口的不同 Map是雙列的,Collection是單列的 Map...
摘要:集合判斷兩個(gè)元素的標(biāo)準(zhǔn)是兩個(gè)對(duì)象通過(guò)方法比較相等,并且兩個(gè)對(duì)象的方法返回值也相等。的集合元素也是有序的,以枚舉值在類內(nèi)的定義順序來(lái)決定集合元素的順序。是所有實(shí)現(xiàn)類中性能最好的,但它只能保存同一個(gè)枚舉類的枚舉值作為集合元素。 Set集合通常不能記住元素的添加順序。Set不允許包含重復(fù)的元素。 Set集合不允許包含相同的元素,如果試圖把兩個(gè)相同的元素加入同一個(gè)Set集合中,則添加操作...
摘要:的操作和遍歷的三大集合即。的實(shí)現(xiàn)類原理比較簡(jiǎn)單,比較復(fù)雜,而其實(shí)是基于的一種實(shí)現(xiàn)。 List&Map&Set的操作和遍歷 Java的三大集合即:Set、List、Map。 Set:代表無(wú)序、不可重復(fù)的集合,常用的有HashSet(哈希表實(shí)現(xiàn))、TreeSet(紅黑樹(shù)實(shí)現(xiàn)); List:代表有序、可以重復(fù)的集合,比較常用的有ArrayList(數(shù)組實(shí)現(xiàn))、LinkedList(鏈表實(shí)現(xiàn)...
閱讀 1053·2023-04-25 17:51
閱讀 2858·2021-11-23 09:51
閱讀 1483·2021-11-08 13:21
閱讀 2457·2021-09-22 15:14
閱讀 1522·2019-08-30 12:48
閱讀 1086·2019-08-29 12:44
閱讀 1146·2019-08-26 12:21
閱讀 1403·2019-08-26 10:47