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倍)
  • 第二步将旧哈希表中的数据放到新的哈希表中
相关推荐
逆境不可逃2 小时前
Pi Agent 学习笔记:多个工具怎样并行执行
java
小弥儿3 小时前
GitHub今日热榜 | 2026-09-15:AI 智能体与本地生成工具领跑
学习·开源
老当益壮梁奶奶3 小时前
51单片机DS18B20温度传感器详解:单总线时序与C51驱动实现
笔记·stm32·单片机·嵌入式硬件·51单片机
Flynt3 小时前
Java 27 升级实测:默认值动得比新特性多,有个老参数会让 JVM 直接起不来
java·jvm·后端
Bs_MoneyMagnet3 小时前
基于springboot+vue的个人健康管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·vue3·springboot3·计算机毕业设计
susplus3 小时前
【初识ARM】ARM相关基础概念
学习·arm
星云API技术支持4 小时前
企业微信二次开发:群权限设置、成员管理与群资料维护的接口组合实践
java·前端·企业微信
XiHongShi20164 小时前
键盘大小写指示器(代替键盘灯)
学习·计算机
niucloud-admin4 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
小叶肥辉4 小时前
LangChain链和LangGraph图的学习笔记【三】——分别用langchain_openai库和langchain_community库调用大模型
笔记·python·langchain