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来说比较慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值