java-tip-各類Map的區別及如何選擇

這裏主要討論這三種:HashMap、LinkedHashMap、TreeMap
1. HashMap是常規的哈希表,查詢以及插入的性能最好,若是沒有特殊要求,應該使用這個

 

2. LinkedHashMap:這個類比較有意思,
   它能夠指定遍歷的順序:
   1) 元素添加的順序
   2) 按最近最少使用的順序

 

這個類的實現上繼承了HashMap,只是比HashMap多維護了一個雙鏈表,所以,
它的查詢及插入性能稍差於HashMap。
可是它的遍歷性能要好於HashMap。

 

若是想要按照元素添加順序遍歷,那麼使用LinkedHashMap

 

3. TreeMap,這個類的內部實現 相似於C++的std::map
TreeMap將元素存儲在一個紅黑樹中,存儲在它裏面的Key必須實現Comparable接口。
因爲使用了紅黑樹的緣由,存儲在它裏面的key是從小到大排好序的。
它的各項性能指標都要比HashMap差。

 

若是想要Map中的元素是有序的,那麼使用TreeMap
相關文章
相關標籤/搜索