1. 程式人生 > >ConcurrentHashMap和hashTable的區別、HashMap和TreeMap區別

ConcurrentHashMap和hashTable的區別、HashMap和TreeMap區別

ConcurrentHashMap集合了hashmap和hashtable 這兩張表的優勢:

hashtable 每次操作都會鎖住真個結構
ConcurrentHashMap 鎖的方式是稍微細粒度
把資料分為了16個桶,每次get put remove 等操作,只需要對對應的桶進行操作就可以了;
讀取併發,因為在讀取的大多數時候都沒有用到鎖定,寫操作鎖定的粒度又非常細,所以,其併發效能大大提升了;

參考
https://blog.csdn.net/wisgood/article/details/19338693

2019.01.09更新

》HashMap和TreeMap 的區別:

1、HashMap通常比TreeMap快一點(樹和雜湊表的資料結構使然),建議多使用HashMap,在需要排序的Map時候才用TreeMap。
2、繼承的類不同、
HashMap繼承AbstractMap ,
基於雜湊表實現,明確定義了hashCode()和equals(),有調優選項;
可以調節 : 初始容量和負載因子

TreeMap繼承自SortedMap ,
基於紅黑樹實現。TreeMap沒有調優選項,因為該樹總處於平衡狀態。
3、效能上:
HashMap:適用於在Map中插入、刪除和定位元素。
Treemap:適用於按自然順序或自定義順序遍歷鍵(key)。