LinkedHashMap和HashMap的區別


一、問題描述:  

  前幾天寫webservices接口,需要同步人力資源,涉及到添加順序:主賬號需要添加在次賬號之前,直接上級需要添加在下級之前。解析xml之后直接封裝在HashMap中,導致取對象時順序被打亂,隨后封裝在LinkedHashMap中得以解決。

二、主要區別:

  LinkedHashMap是比HashMap多了一個鏈表的結構。與HashMap相比LinkedHashMap維護的是一個具有雙重鏈表的HashMap,LinkedHashMap支持2中排序一種是插入排序,一種是使用排序,最近使用的會移至尾部例如 M1 M2 M3 M4,使用M3后為 M1 M2 M4 M3了,LinkedHashMap輸出時其元素是有順序的,而HashMap輸出時是隨機的,如果Map映射比較復雜而又要求高效率的話,最好使用LinkedHashMap,但是多線程訪問的話可能會造成不同步,所以要用Collections.synchronizedMap來包裝一下,從而實現同步。另外,LinkedHashMap可以實現快速的查詢第一個元素(First)跟結尾(Last)。

三、TreeMap:

  TreeMap取出來的是排序后的鍵值對。但如果您要按自然順序或自定義順序遍歷鍵,那么TreeMap會更好 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM