HashMap,HashTable,HashSet之间的区别从以下5个方面来比较:
1.实现接口的不同
HashMap,HashTable是Map接口的实现类,而HashSet是Set接口的实现类,而Set接口是继承Collection接口。
2.线程安全性,同步
HashTable中的方法加了同步锁(synchronized),所以对象是线程安全,而HashMap是异步的,所以存放的对象并不是线程安全的,而HashSet的底层是用HashMap实现的,所以它也不是线程安全的。
3.执行效率
HashTable是同步的,而HashMap是异步的,所以HashMap的执行效率比HashTable要高,三则之间执行效率的排序是:HashMap>HashSet>HashTable
4.key,value能否存放NULL
HashMap的key,value是可以为null,而HashTable是不能存放NULL,HashSet它存放的不是键值对,而是对象,也是可以为NULL
5.添加元素的方法不同
HashMap是通过put(),来增加元素的,而HashSet是通过add()方法来增加元素的