每日一問(八)HashMap和Hashtable的區別

HashMap是map接口的子類,是將鍵映射到值的對象,其中鍵和值都是對象,并且不能包含重復鍵,但可以包含重復值。HashMap允許null key和null value,而hashtable不允許。

HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,由于非線程安全,效率上可能高于Hashtable。

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

Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。

Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。但是如果使用Java 5或以上的話,可以用ConcurrentHashMap代替Hashtable。

Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容