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倍)
  • 第二步将旧哈希表中的数据放到新的哈希表中
相关推荐
wuqingshun3141595 小时前
什么是责任链模式,一般用在什么场景?
java·责任链模式
:-)6 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
wuqingshun3141596 小时前
说一下消息队列的模型有哪些?
java
fīɡЙtīиɡ ℡7 小时前
布隆过滤器
java
寒月小酒8 小时前
第三章 索引构建(2-all -in-rag学习)
学习
yaoxin5211238 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
天国梦8 小时前
中学生居家英语听力训练深度解析:从核心痛点到AI赋能的全链路方案
人工智能·学习
wuqingshun31415910 小时前
MYSQL的乐观锁和悲观锁是什么?
java
唐青枫11 小时前
Java SLF4J 实战指南:从日志门面到 Logback、MDC 和链路追踪
java
hengcaib11 小时前
防封号电销外包公司怎么选合规线路与风控核查方法
笔记