hashmap的一些基础原理
2024-09-04 14:57:11
本文来源于翁舒航的博客,点击即可跳转原文观看!!!(被转载或者拷贝走的内容可能缺失图片、视频等原文的内容)
若网站将链接屏蔽,可直接拷贝原文链接到地址栏跳转观看,原文链接:https://www.cnblogs.com/wengshuhang/p/9867090.html
关于浏览hashmap基础原理之后的一些汇总:
1、在JDK8及以后的版本中,HashMap引入了红黑树结构,其底层的数据结构变成了数组+链表或数组+红黑树。添加元素时,若桶中链表个数超过8,链表会转换成红黑树
具体原理为什么是8呢:泊松分布、概率学问题
2、红黑树,来源于二叉查找树,但是当二叉查找树最坏的情况会变成链表,所以引入红黑色的概念,而红黑树在插入跟删除时候主要数据的操作排列方式是左旋或者右旋,红黑树的查询时间复杂度是O(log N)
3、hashmap的初始容量是16,加载因子是0.75(泊松分布),当数据容量为16*0.75=12时,会进行数据的扩容,扩容是翻倍=32,但是还有一种扩容的情况,就是当数据大于8时候由链表转为树形存储时候,当检测到容量小于64时候,会进行扩容,因为数据过长原因还是由于空间不足。
最新文章
- PHP对象在内存堆栈中的分配
- bzoj1188 [HNOI2007]分裂游戏 博弈论 sg函数的应用
- 安装win10
- C# 单点登录 MVC
- linux screen 命令详解(未验证+研究)
- [LeetCode]题解(python):059-Spiral Matrix II
- 给Extjs的GridPanel增加“合计”行(转)
- 两种Data Table参数化设置的区别
- 使用js在新窗口中POST数据
- 自增ID算法snowflake(雪花)
- PyCharm中HTML页面CSS class名称自动完成功能失效的问题
- 彻底搞懂 C# 的 async/await
- 目标检测算法(1)目标检测中的问题描述和R-CNN算法
- vue 构建项目遇到的问题
- Hadoop项目实战-用户行为分析之分析与设计
- winhex十六进制常用快捷键
- js之全选即点击全选标签可选择全部复选框
- 学习笔记45—Linux压缩集
- [C#]获取指定文件夹下的所有文件名(递归)
- [WPF]DropShadowEffect导致Image模糊问题
热门文章
- “全栈2019”Java第二章:安装JDK11(Windows)
- leecode刷题(19)-- 最长公共前缀
- IntelliJ IDEA 配置JSP &; Servlet开发环境
- Elasticsearch(八)【NEST高级客户端--Mapping映射】
- itemgetter和groupby
- 数据挖掘 Apriori Algorithm python实现
- Altium Designer安装孔周围放置圆形Polygon Pour Cutout
- 利器推荐-Snipaste截图工具
- Java 中 String 的常用方法(二)
- Critical Regions和Guarded Regions区别