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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章