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倍)
  • 第二步将旧哈希表中的数据放到新的哈希表中
相关推荐
AI视觉网奇2 小时前
ChatTutor 部署笔记
笔记
Flittly2 小时前
【SpringAIAlibaba新手村系列】(14)MCP 本地服务与工具集成
java·spring boot·笔记·spring·ai
ZhiqianXia2 小时前
PyTorch 笔记学习(15) : aot_autograd.py 解析
pytorch·笔记·学习
范什么特西2 小时前
web练习
java·前端·javascript
阿捞22 小时前
JVM排查工具单
java·jvm·python
mfxcyh2 小时前
基于xml、注解、JavaConfig实现spring的ioc
xml·java·spring
Flittly2 小时前
【SpringAIAlibaba新手村系列】(13)Tool Calling 函数工具调用技术
java·spring boot·spring·ai
xdscode2 小时前
Spring 依赖注入方式全景解析
java·后端·spring
ZhiqianXia2 小时前
PyTorch 学习笔记(14):PyTorch/LLVM 编译栈
pytorch·笔记·学习