1. 程式人生 > >hashmap資料結構詳解(五)之HashMap、HashTable、ConcurrentHashMap 的區別

hashmap資料結構詳解(五)之HashMap、HashTable、ConcurrentHashMap 的區別

【hashmap 與 hashtable】

 


hashmap資料結構詳解(一)之基礎知識奠基

hashmap資料結構詳解(二)之走進JDK原始碼

hashmap資料結構詳解(三)之hashcode例項及大小是2的冪次方解釋

hashmap資料結構詳解(四)之hashmap過程綜述

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

 

之後補上。