<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Picses' sky

    Picses' sky
    posts - 43, comments - 29, trackbacks - 0, articles - 24

    Collection Framework study tips[zz]

    Posted on 2007-07-18 15:01 Matthew Chen 閱讀(181) 評論(0)  編輯  收藏 所屬分類: Java SE

     

    HashSet 類和 TreeSet 類

    “集合框架”支持 Set 接口兩種普通的實現(xiàn):HashSet 和 TreeSet。在更多情況下,您會使用 HashSet 存儲重復自由的集合。考慮到效率,添加到 HashSet 的對象需要采用恰當分配散列碼的方式來實現(xiàn) hashCode() 方法。雖然大多數(shù)系統(tǒng)類覆蓋了 Object 中缺省的 hashCode() 實現(xiàn),但創(chuàng)建您自己的要添加到 HashSet 的類時,別忘了覆蓋 hashCode()。當您要從集合中以有序的方式抽取元素時,TreeSet 實現(xiàn)會有用處。為了能順利進行,添加到 TreeSet 的元素必須是可排序的。 “集合框架”添加對 Comparable 元素的支持,在排序的“可比較的接口”部分中會詳細介紹。我們暫且假定一棵樹知道如何保持 java.lang 包裝程序器類元素的有序狀態(tài)。一般說來,先把元素添加到 HashSet,再把集合轉換為 TreeSet 來進行有序遍歷會更快。

    為優(yōu)化 HashSet 空間的使用,您可以調(diào)優(yōu)初始容量和負載因子。TreeSet 不包含調(diào)優(yōu)選項,因為樹總是平衡的,保證了插入、刪除、查詢的性能為 log(n)。

    HashSet 和 TreeSet 都實現(xiàn) Cloneable 接口。
    HashSet中重復添加相同元素,HashSet中只有一個這樣的元素,并不重復。
    TreeSet中元素按升序排列

    HashMap 類和 TreeMap 類
    “集合框架”提供兩種常規(guī)的 Map 實現(xiàn):HashMap 和 TreeMap。和所有的具體實現(xiàn)一樣,使用哪種實現(xiàn)取決于您的特定需要。在 Map 中插入、刪除和定位元素,HashMap 是最好的選擇。但如果您要按順序遍歷鍵,那么 TreeMap 會更好。根據(jù)集合大小,先把元素添加到 HashMap,再把這種映射轉換成一個用于有序鍵遍歷的 TreeMap 可能更快。使用 HashMap 要求添加的鍵類明確定義了 hashCode() 實現(xiàn)。有了 TreeMap 實現(xiàn),添加到映射的元素一定是可排序的。我們將在排序中詳細介紹。

    為了優(yōu)化 HashMap 空間的使用,您可以調(diào)優(yōu)初始容量和負載因子。這個 TreeMap 沒有調(diào)優(yōu)選項,因為該樹總處于平衡狀態(tài)。
    HashMap 和 TreeMap 都實現(xiàn) Cloneable 接口。
    HashMap中重復添加相同元素,HashMap中只有一個這樣的元素,并不重復。
    Hashtable 類和 Properties 類是 Map 接口的歷史實現(xiàn)。


    “集合框架”提供了個特殊的 Set 接口:SortedSet,它保持元素的有序順序。
    該接口為集的子集和它的兩端(即頭和尾)提供了訪問方法。當您處理列表的子集時,更改子集會反映到源集。此外,更改源集也會反映在子集上。發(fā)生這種情況的原因在于子集由兩端的元素而不是下標元素指定。此外,如果 fromElement 是源集的一部分,它就是子集的一部分。但如果 toElement 是源集的一部分,它卻不是子集的一部分。如果您想要一個特殊的高端元素(to-element)在子集中,您必須找到下一個元素。對于一個 String 來說,下一個元素是個附帶空字符的同一個字符串(string+"\0")。;
    添加到 SortedSet 的元素必須實現(xiàn) Comparable,否則您必須給它的實現(xiàn)類的構造函數(shù)提供一個 Comparator:TreeSet(您可以自己實現(xiàn)接口。但是“集合框架”只提供這樣一個具體的實現(xiàn)類。)

    “集合框架”提供了個特殊的Map 接口:SortedMap,它用來保持鍵的有序順序。
    此接口為映射的子集包括兩個端點提供了訪問方法。除了排序是作用于映射的鍵以外,處理 SortedMap 和處理 SortedSet 一樣。“集合框架”提供的實現(xiàn)類是 TreeMap。
    因為對于映射來說,每個鍵只能對應一個值,如果在添加一個鍵-值對時比較兩個鍵產(chǎn)生了零返回值(通過 Comparable 的 compareTo() 方法或通過 Comparator 的 compare() 方法),那么,原始鍵對應值被新的值替代。如果兩個元素相等,那還好。但如果不相等,那么您就應該修改比較方法,讓比較方法和 equals() 的效果一致。

    主站蜘蛛池模板: 91在线视频免费观看| 羞羞视频免费网站入口| 曰批全过程免费视频在线观看无码 | 久久亚洲精品中文字幕| 日韩a级毛片免费观看| 亚洲国产成人精品青青草原| 久久ww精品w免费人成| 久久精品国产亚洲AV高清热| 99re在线这里只有精品免费| 久久亚洲精品成人AV| 99久久99热精品免费观看国产| 亚洲丁香色婷婷综合欲色啪| 91精品免费高清在线| 亚洲最大在线视频| 色妞WWW精品免费视频 | 亚洲精品456在线播放| 最近在线2018视频免费观看| 亚洲AV成人无码天堂| 午夜无遮挡羞羞漫画免费| 亚洲精品理论电影在线观看| 免费一级e一片在线播放| 一级免费黄色大片| 亚洲爱情岛论坛永久| 一色屋成人免费精品网站| 国产aⅴ无码专区亚洲av| 99精品免费观看| 亚洲人成77777在线播放网站不卡| 精品国产免费观看久久久| 一级黄色片免费观看| 亚洲av无码国产精品夜色午夜 | 亚洲精品宾馆在线精品酒店| 四虎精品亚洲一区二区三区| 国产日韩久久免费影院| 亚洲一区二区三区四区在线观看 | 91在线手机精品免费观看| 亚洲综合偷自成人网第页色| 亚洲av无码成人精品区| 久久国产高潮流白浆免费观看 | aa级毛片毛片免费观看久| 亚洲色欲www综合网| 无码欧精品亚洲日韩一区夜夜嗨 |