set 和map

        Set接口繼承Collection接口,而且他不允許集合中存在重複項,每個具體的Set實現類依賴添加的對象的equals()和hashCode()方法來檢查獨一性。它常用的具體實現有HashSet和TreeSet類。Set接口沒有引入新的方法,跟Collection一樣,只是行爲不同。

        HashSet能快速定位一個元素,但放到其中的對象需要實現hashCode()方法。該結構使用散列表進行存儲,用散列碼確定唯一的一個值。在實際程序中,有很多時候不能直接比較,特別是自定義的類,這是需要重寫equals()、hashCode()、toString()方法。其實任何一個好的編程員,在編程的時候都應該重寫這三個方法,但String類除外,因爲它已經覆蓋了這三個方法。可以用for-each輸出,但是輸出的順序是不一定的。

        TreeSet使用樹結構來進行存儲Set接口的實現類,對象按升序存儲,訪問和檢索速度快。需要注意的是,在實際中的類並不一定相同,需要繼承Comparable接口,重新了compareTo()方法,不然就不能自動調用Collections.sort()方法。他是排序輸出。

       Map是一種把鍵對象和值對象進行關聯的容器,它容器中的見對象時不能重複的。它提供了Map.Entry接口,通過entrySet方法返回實現Map.Entry接口的對象集合。這樣讓Map可以轉化成Set,再轉化成Iterator,就可以迭代輸出了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章