HashMap
, TreeMap
, LinkedHashMap
對比HashMap 存儲結構: 數組 + 鏈表 + 紅黑樹數組
LinkedHashMap 存儲結構 和HashMap 相同,區別是維護一個根據插入順序保持的雙向鏈表安全
TreeMap 存儲結構: 紅黑樹數據結構
HashMap 無序多線程
LinkedHashMap 根據插入前後順序肯定遍歷順序學習
TreeMap 有序,根據Key進行比較獲取前後順序.net
HashMap 迭代線程
示意圖以下:code
LinkedHashMap 迭代blog
TreeMap 迭代排序
由於TreeMap是紅黑樹,左孩子 < 根 < 右孩子,
因此按照樹的中序遍歷方式進行掃描,即先獲取樹的左孩子,而後是根,最後是右孩子
示意圖以下:
HashMap, LinkedHashMap, TreeMap 非線程安全,所以都不適用於多線程環境下
但願有序的Map,考慮採用 LinkedHashMap, TreeMap
HashMap
hashcode
方法,這個問題不太大)TreeMap
HashMap
的碰撞狀況LinkedHashMap
HashMap
的使用規則掃一掃二維碼,關注小灰灰blog