HashTable 和 HashHashMap核心

1.Hashtable是个线程安全的类(HashMap线程安全) 使用同步代码块控制;

2.Hasbtable并不允许值和键为空(null),若为空,会抛空指针(HashMap可以);

3.Hashtable不允许键重复,若键重复,则新插入的值会覆盖旧值(同HashMap);

4.Hashtable同样是通过链表法解决冲突;

5.Hashtable根据hashcode计算索引时将hashcode值先与上0x7FFFFFFF,这是为了保证hash值始终为正数;

6.Hashtable的容量为任意正数(最小为1),而HashMap的容量始终为2的n次方。Hashtable默认容量为        11,HashMap默认容量为      16;

7.Hashtable每次扩容,新容量为旧容量的2倍加1,而HashMap为旧容量的2倍;

8.Hashtable和HashMap默认负载因子都为0.75;

9..HashTable使用Enumeration进行遍历;HashMap使用Iterator进行遍历。

10.哈希值的使用不同,HashTable直接使用对象的hashCode; HashMap重新计算hash值,而且用与代替直接求模

关于hashMap  参考博客

http://zhangshixi.iteye.com/blog/672697

add过程   hashcode  ————》调用HashMap 的hash方法——》调用forIndex 方法(确定index位置,使用的高效与运算代替取模) ————》判断是否有hash冲突,没有hash冲突讲键值对直接放在index 位置,有冲突把键值对放在链表头部,next指向之前的头部。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值