java容器類總結

一圖勝千言!
這裏寫圖片描述

從容器類圖中可以發現,數據容器主要分爲了兩類:

Collection: 存放獨立元素的序列。

Map:存放key-value型的元素對。(這對於一些需要利用key查找value的程序十分的重要!)

在使用時,應該根據不同的適用場景靈活的進行選擇!

Map

-HashMap                提供了key-value的鍵值對數據存儲機制,可以十分方便的通過鍵值查找相應的元素,
                        而且通過Hash散列機制,查找十分的方便。不支持線程的同步.

    -LinkedHashmap      保存了記錄的插入順序,在用Iteraor遍歷LinkedHashMap時,
                        先得到的記錄肯定是先插入的。在遍歷的時候會比HashMap慢。有HashMap的全部特性。

-TreeMap                能夠把它保存的記錄根據鍵排序,默認是按升序排序,也可以指定排序的比較器。
                        當用Iteraor遍歷TreeMap時,得到的記錄是排過序的。TreeMap的鍵和值都不能爲空。

-ConcurrentHashMap      支持線程的同步。

Collection

-List(有序列表)
    -LinkedList         其數據結構採用的是鏈表,此種結構的優勢是刪除和添加的效率很高,
                        但隨機訪問元素時效率較ArrayList類低。

    -ArrayList          其數據結構採用的是線性表,此種結構的優勢是訪問和查詢十分方便,
                        但添加和刪除的時候效率很低。

-Set(無序且唯一)
    -HashSet            HashSet利用Hash函數進行了查詢效率上的優化,其contain()方法經常被使用,
                        以用於判斷相關元素是否已經被添加過。

        -LinkedHashSet  介於HashSet和TreeSet之間。它也是一個hash表,但是同時維護了一個雙鏈表        
                        來記錄插入的順序。保證輸入和輸出的順序,該順序恆久不變。

    -TreeSet            採用樹結構實現(紅黑樹算法)。元素是按順序進行排列。TreeSet支持兩種排序方式,
                        自然排序 和定製排序,其中自然排序爲默認的排序方式。

Queue(隊列)
    -LinkedList         同上

    -PriorityQueue      本質上就是堆排序裏面建的最小堆。對入隊的元素進行排序,
                        所以在隊列頂端的總是最小的元素。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章