HashMap和HashTable的區別

我在面試中碰到過這個問題、HashMap和HashTable的區別、自己查找過相關資料、也問過技術大牛、總結出以下幾點:

HashMap繼承AbstractMap,它是HashTable的輕量級實現,是非線程安全的,執行效率較高一些,允許Entry的Key或value爲null,沒有contains方法;

HashTable繼承Dictionary,是線程安全的,執行效率低,不允許Entry的key或value爲null,否則會出現異常NullPointerException,有contains方法。

需要注意的是:

Hashtale是Syncchronize的,而HashMap是Asyncchronize的,當多個線程訪問Hashtable時,Hashtable不需要自己爲它的方法實現同步;而當多個線程訪問HashMap時,需要通過Collections.synchronizedMap來同步HashMap。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章