HashMap的知识点概括

1.HashMap:
1.HashMap是基于在hash算法的图,也是一种数据结构
2.hash算法是把任意长度的数值,通过散列算法变成固定长度的数值(采用摘要算法)
在这里插入图片描述
特点:
不同的值,经过hash之后的结果有可能会重复
很难找到逆向的规律(根据结果无法反推出原始值是什么?)

2.HashMap扩容:
我们首先知道扩容就说给数组扩大容量(capacity),如果没有设定它的最大容量的话,它就是默认为16,如果我们一直往里头put,put 填数据的话,我们就得扩大容量,扩容与负载因子有关,负载因子(loadFactor,默认值为0.75f)是表示HashMap满的程度,如果当HashMap中的元素达到容量的一半以上就会自动扩容(threshold:capacity*loadFactor=threshold)

3.如何处理hash冲突:
在这里插入图片描述
为什么会出现冲突的原因如下:
1.容量不够大,不够大的话,就容易发生冲突,例如:两方人数相差大
2.hash算法不够精准

解决方法:
不冲突的时候每个桶(数组中每个元素)都有一个键值对
1.冲突较多的时候,Node的next属性不为空,组成链表
2.冲突更多的时候,,碰撞也会随之数据的增加而增加,这时候我们引入红黑树的结构,就能够避免效率慢的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值