讲一下HashMap和HashTable的区别

可以从7个方面来回答这个问题:

1、继承的父类不同。HashMap 继承自 AbstractMap,而 Hashtable 是继承自 Dictionary。

2、对外提供的接口不同。Hashtable 比 HashMap 多提供了 elments() 和 contains() 两个方法。

3、对 null key 和 null value 的支持不同。Hashtable 既不支持 null key,也不支持 null value。而 HashMap 中,null 可以作为键,但只能有一个key是null,可以有多个value为 null。

4、线程安全性不同。Hashtable 是线程安全的,HashMap 不是。

5、内部遍历方式的不同。Hashtable、HashMap都使用了 Iterator 迭代器来遍,Hashtable 使用的是 Enumeration 的方式。

6、初始容量大小和每次扩充容量大小的不同。Hashtable 默认的初始大小为11,之后每次扩容,容量变为原来的 2倍加1。HashMap默认的初始化大小为16,之后每次扩容,容量变为原来的 2 倍。

7、计算hash值的方法不同,Hashtable直接使用对象的hashCodeHashMap为了提高计算效率,将哈希表的大小固定为了2的幂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值