古詩詞大全網 - 成語大全 - hashtable和hashmap的區別是什麽?

hashtable和hashmap的區別是什麽?

壹、繼承父類不同

Hashtable繼承自Dictionary類,而HashMap繼承自AbstractMap類;但二者都實現了Map接口。

二、線程的安全性

1、HashTable是同步(方法中使用了Synchronize)的;而HashMap是未同步(方法中缺省Synchronize)的。

2、Hashtable線程安全,因為它每個方法中都加入了Synchronize,在多線程並發的環境下,可以直接使用Hashtable,不需自己在加同步;

HashMap線程不安全,因為HashMap底層是壹個Entry數組,當發生hashmap沖突的時候,hashmap是采用鏈表的方式來解決的,在對應的數組位置存放鏈表的頭結點。對鏈表而言,新加入的節點會從頭結點加入。

三、是否有contains方法

1、HashTable有壹個contains(Object value)方法,功能和containsValue方法(Object value)功能壹樣。

2、HashMap把Hashtable的contains方法去掉了,改成containsValue和containsKey。

四、可否允許有null值

key、value都是對象,但是不能擁有重復key值,value值可以重復出現。

1、Hashtable中,key和value都不允許出現null值。

2、HashMap允許null值(key和value都可以),因為在HashMap中null可以作為健,而它對應的值可以有多個null。

五、遍歷方式內部實現不同

1.HashTable使用Enumeration,HashMap使用Iterator。