HashTable和HashMap的区别

相同点:

1、 底层数据结构都为:数组+链表

2、key值都不可以重复,如果有相同的key,替换其原有位置的value值

3、插入元素都不能保证插入有序

4、都是先通过键值对的key获得相对应的哈希值,然后找到数组的索引位置,遍历链表

5.共同实现接口:Map<K,V>; Cloneable; java.io.Seriliable;

6.默认扩容加载因子都为0.75

不同点:

1、继承关系不同,HashTable继承自Dictionary,HashMap继承自AbstractMap

2、初始容量默认值不同:HashTable的初始容量为11,HashMap的初始容量为16

3、能否存储null值问题:HashTable的key和value都不能为null,put方法下key、value都不能为null,为null则会抛出空指针异常。HashMap的key和value都可以为null,put方法下对key为null不为null分别进行处理。

4、线程安全性问题:HashTable是线程安全的,HashMap是非线程安全的

5、哈希算法不同

6、扩容大小不同:HashTable是按照2*oldlength+1 进行扩容;HashMap是按照2*oldlength即指数扩容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心皿月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值