自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 hashMap的寻址算法

这样的寻址算法可以使得key的HashCode均匀地分布在HashMap内部的数组中,减少了碰撞的概率,提高了查找的效率。的随机性,使得Hash值更加均匀地分布,有利于减少碰撞,提高HashMap的性能。分成高16位和低16位两部分,然后对这两部分进行异或运算。进行高低16位异或操作是指将32位的。的寻址操作时,首先会获取键的。

2023-11-22 13:45:07 216

原创 HashMap的扩容机制

(很重要,因为数组的大小变了,所以因为到求索引的下表算法的结果,重新计算之后,很大概率元素对应的数组下标位置会变化)6. 当HashMap的大小超过数组容量的一定比例(默认为负载因子,默认值为0.75)时,会触发扩容。3. 若该位置不为空,说明发生了哈希冲突,这时需要遍历链表(或红黑树),判断链表中是否存在相同的键。5. 若链表中不存在相同的键,则将新的键值对插入链表(或红黑树)中。7. 扩容时,会创建一个新的数组,新数组的大小为原数组大小的两倍。4. 若链表中存在相同的键,则将新的值覆盖原值。

2023-11-22 13:44:18 53

原创 Hashmap的put的底层原理

如果该位置已经存在其他元素(可能是单个元素或者链表、红黑树等数据结构),则需要比较键的。然后,检查该位置是否已经存在其他元素,如果不存在,则直接将新的键值对存储在该位置。如果发生了碰撞且使用的是红黑树存储冲突元素,会按照红黑树的规则进行插入操作。如果发生了碰撞且使用的是链表存储冲突元素,会将新元素追加到链表末尾;如果发生了碰撞且链表长度超过阈值,会将链表转换为红黑树存储冲突元素;若size超过数组大小*加载因子,则进行扩容操作。Hashmap的put的底层原理。内部数组中的索引位置。

2023-11-22 12:54:17 52

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除