HashMap基本讲解

HashMap最详细讲解

数组:大小固定,连续的内存,可通过index来查询很快,添加元素如果超过数组的长度需要重新开辟数组空间把原数组复制过去,所以添加慢在这里插入图片描述
链表:不是连续的内存空间,上一个保存下一个的内存地址,插入只需要把内存地址指向改变即可,所以插入块元素很快,但是查询的时候需要通过第一个元素拿到第二个元素的内存地址。再通过第二个元素拿到第三个元素的内存地址,依次查询,所以查询速度很慢在这里插入图片描述
散列表
在这里插入图片描述
Hash:Hash也称散列,基本原理是把任意长度的输入,通过Hash算法转换成固定长度的输出,输出值即为哈希值。
Hash的特点:
1、从hash值不可推导出原始的数据
2、输入数据微小变化会得到完全不同的hash值,相同的数据会得到相同的值
3、hash算法的执行效率要高效,即使很长的文本也能快速计算出Hash值
4、hash算法冲突的概率要很小
由于hash原理是将输入空间映射成hash空间内,而hash值得空间远小于输入的空间,根据抽屉(把十个苹果放进九个抽屉里面,无论怎么放,至少一个抽屉里面不少于两个苹果)原理。
HashMap:的底层其实就是数组+链表+红黑树,数组初始长度是16,当所有元素数量达到64个并且单个链表的数量大于8时,链表结构将升级为红黑树

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值