Hash表的数据结构
来源:互联网 发布:淘宝刷天龙八部vip帐号 编辑:程序博客网 时间:2024/05/28 15:42
结构:
HashMap与HashSet的结构是差不多的,以数组作为桶,每个桶中装的是链表,当链表的元素超过8个时桶中的元素自动转为红黑树存储。
扩容:
HashMap与HashSet的默认负载因子为0.75,当Hash表中的元素超过数组长度乘以负载因子的积时会扩容,通过调用resize()实现,一般是扩容一倍。
resize():
使用一个容量大的数组替代容量小的数组,transfer()方法将数据拷到新的数组中,在这里是需要重新计算Hash值,并重新定位。
红黑树:
一种特殊的二叉树,主要存储有序的数据,并提供高效的检索,时间复杂度为O(log n),每一个节点都有一个标识位来表示颜色,红黑;具有以下5种特性:
1、每个节点非黑即红。
2、根节点必须是黑色。
3、每个空叶子节点必须是黑色
4、如果一个节点是红色,那么子节点必须是黑色。
5、从一个节点到他的所有子孙节点的所有路径的黑节点相等。
当新加入节点时可能破坏特性,则需要进行左旋或者右旋调整。
阅读全文
0 0
- Hash表的数据结构
- 数据结构--Hash表的实现
- 算法与数据结构-Hash表的理解
- 数据结构之hash表
- 实现数据结构Hash表
- 数据结构-hash表-mpq
- 【数据结构】hash冲突的解决方法
- linux内核数据结构---hash表
- java数据结构之hash表
- 【数据结构与算法】Hash表
- 【数据结构•hash表】烦恼的设…
- 【数据结构•hash表】聪明的打…
- 【数据结构•hash表】方程的解…
- 西风的数据结构教程(4)——hash表
- 浅析MySQL的HASH数据结构分析
- [数据结构]适用于字符串的Hash函数
- 数据结构之hash表,HashMap简单实现
- 【数据结构•hash表】OIBH模拟…
- 160个练手CrackMe-024
- 值对象操作
- stm32之DMA彻底研究
- canvas图形编辑器
- 初步接触Linux!
- Hash表的数据结构
- 前端开发:一款近年非常受欢迎、简单的WEB弹出层组件(layer)
- Android Studio软件技术基础 —Android项目描述---1-类的概念-android studio 组件属性-+标志-Android Studio 连接真机不识别其他途径
- 跟随c++primer学c++(十一、十二章)
- linux中安装jdk遇到问题1 后续持续更新问题
- ssh-agent 转发:让服务器用我们电脑上的 SSH Key 验证身份
- Balanced Substring CodeForces
- [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习
- tslib移植