hashmap資料結構詳解(五)之HashMap、HashTable、ConcurrentHashMap 的區別
阿新 • • 發佈:2018-11-08
【hashmap 與 hashtable】
hashmap資料結構詳解(三)之hashcode例項及大小是2的冪次方解釋
hashmap資料結構詳解(五)之HashMap、HashTable、ConcurrentHashMap 的區別
1、首先是類繼承關係
2、hashtable支援:支援null的key和value值
3、擴容方式不一樣
HashTable預設的初始大小為11,之後每次擴充為原來的2n+1。HashMap預設的初始化大小為16,之後每次擴充為原來的2倍。如果在建立時給定了初始化大小,那麼HashTable會直接使用你給定的大小,而HashMap會將其擴充為2的冪次方大小。(關於2 的冪次方見第三節)
4、儲存方式都一致,都是按照節點進行的儲存。
5、執行緒安全問題:在hashtable中,對開放介面做了synchronize關鍵字的同步處理。而hashmap沒有,故執行緒不安全,而concurrentHashmap就是主要解決hashmap的這個問題。
6、目前hashtable已經淘汰使用。
【HashMap 與 ConcurrentHashMap】
concurrentHashMap相對於hashmap來說支援了併發操作.
參考:
http://www.importnew.com/28263.html
之後補上。