Java学习笔记_Day24(HashMAap)

目录

HashMap的实现原理

HashMap的put(key,val)

HashMap的扩容机制


HashMap的实现原理

在JDK1.7版本之前,HashMap数据结构是数组和链表,HashMap通过哈希算法将元素的键映射到数组中。如果多个键映射到数组同一个位置,它们会以链表的形式进行存储,应为链表的查询时间为o(n),链表长的时候,效率就低了。

所有在JDK1.8后,当一个的链表长度超过8的时候就转为红黑树,查找时间为O(logn),提高了查询效率

HashMap的put(key,val)

计算hash从而得到索引位置。进一步存储。HashMap会根据数组的占用情况自动调整容量(超过就resize为原来的两倍)

HashMap的扩容机制

HashMap默认的负载因子为0.75,即如果HashMap中的元素个数超过总容量的75%,就会扩容

  • 第一步对哈希表长度的扩展(2倍)
  • 第二步将旧哈希表中的数据放到新的哈希表中
相关推荐
曹牧35 分钟前
Spring:@RequestMapping注解,匹配的顺序与上下文无关
java·后端·spring
daixin884837 分钟前
cursor无法正常使用gpt5.5等模型解决方案
java·redis·cursor
星幻元宇VR1 小时前
VR航空航天科普设备【VR时空直升机】
科技·学习·安全·生活·vr
_李小白1 小时前
【android opencv学习笔记】Day 2: Mat类(图片数据结构体)
android·opencv·学习
智者知已应修善业1 小时前
【51单片机按键调节占空比3位数码管显示】2023-8-24
c++·经验分享·笔记·算法·51单片机
韦禾水1 小时前
记录一次项目部署到tomcat的异常
java·tomcat
曦月合一2 小时前
树莓派安装jdk、tomcat、vnc、谷歌浏览器开机自启等环境配置
java·tomcat·树莓派
JasmineX-12 小时前
数据结构(笔记)——双向链表
c语言·数据结构·笔记·链表
harder3212 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
此剑之势丶愈斩愈烈2 小时前
openssl 自建证书
java