为了账号安全,请及时绑定邮箱和手机立即绑定

Hashmap被问到扩容机制?

/ 猿问

Hashmap被问到扩容机制?

慕盖茨8153711 2019-04-09 13:54:41

求大神帮忙,面试被问到标题上的问题,该怎么回答?还有就是hash碰撞又该怎么回答?

查看完整描述

1 回答

?
慕无忌7406412
HashMap底层采用数组加链表的方式实现,位桶数组默认大小是16(必须是2的整数次幂),当数组里面的元素装满3/4的时候就会自动扩容,一般是原来的两倍大小。所谓的哈希碰撞就是你put一个键值对进去时,首先会调用key的hashcode()方法产生一个哈希码,再调用hash()方法产生一个哈希值,这个哈希值就是位桶数组的索引。如果此时位桶数组该索引位置已经放了键值对进去了,就产生了哈希碰撞。此时会采取单向链表的方式,调用key的equals()方法挨个比较链表里节点的key值,若返回true,则用新的value值覆盖原来的value值,否则让最后一个节点指向你put进去的键值对。
查看完整回答
反对 回复 2019-04-17

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信