HashMap和Hashtable和HashSet的区别

HashMap和Hashtable的区别

1.Hashtable是同步的,可以在一个多线程的应用中不采取任何特殊措施使用Hashtable;HashMap是非synchronized的,但collection框架提供方法能保证HashMap synchronized;

2.HashMap允许键和值为null。HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。

HashMap和HashSet的区别

1.HashSet实现了Set接口,它不允许集合中有重复的值,当我们将对象存储在HashSet之前,要先确保对象重写equals()和hashCode()方法;这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现

2.HashMap实现了Map接口;HashSet仅仅存储对象,HashMap储存键值对

3.HashSet使用add()方法将元素放入set中,HashMap使用put()方法将元素放入map中

4.HashMap中使用键对象来计算hashcode值;HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false

5.HashMap比较快,因为它使用唯一的键来获取对象;HashSet较HashMap来说比较慢

猜你喜欢

转载自blog.csdn.net/weixin_42882887/article/details/86666194