JAVA 集合性能特性彙總

JAVA集合平時使用較多的是ArrayList和HashMap,其實還有很多不常用的,總結下其特點和性能,以備使用

 1.  Set有2種典型實現,HashSet 和 TreeSet, TreeSet就是排序的的Set,由於TreeSet內部需要紅黑算法樹來維持其排序,添加和查詢方面HashSet都優於TreeSet,通常除非需要一個排序的Set情況外,都使用HashSet。HashSet還有個子類LinkedHashSet,帶鏈表的HashSet,自然它的優勢是遍歷,但相對的插入刪除操作性能就會比較差。最後一種叫EnumSet,裏面只能存一種枚舉,性能最好。

2.  線性表接口List,兩種實現ArrayList(Vertor和ArrayList類似,已經很少使用)和LinkedList,一個基於數組一個基於鏈表,同樣的,除非是很care遍歷性能的情況外,都使用ArrayList,ArrayList使用連續內存保持數據,隨機訪問的性能最佳。

3.   對於Map,最常用的HashMap在大多數情況下性能是最好的,Hashtable是線程安全版的HashMap,由於增加了線程安全所以性能稍差,TreeMap更慢,但由於其排序性,取出Keyset後轉換成Array就直接是排好序了,LinkedHashMap極少使用,實在沒什麼優點(拿Map做遍歷?)。

發佈了30 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章