天天看点

HashMap,HashTable,HashSet之间的区别

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()方法来增加元素的

继续阅读