首页 > 编程知识 正文

hashmap存储的数据结构,数据库底层数据结构

时间:2023-05-05 02:55:24 阅读:129481 作者:318

文章目录` hash`htdxbw冲突解决方法链地址法开放地址法` array `链表红黑树` HashMap `参考文章

在JDK8中,HashMap是基于数组链表的红黑树的实现。

hash hashhtdxbw,也称为散列。 基本原理是将任意长度的输入按照一定的映射规则变换为固定长度的输出。 映射规则是相应的htdxbw算法。 由于输出空间值小于输入空间值,因此根据“抽屉原理”,不同的输入可能会转换为相同的输出。 作为好的htdxbw算法,需要尽量降低发生这种冲突的概率。

典型的htdxbw冲突解决方法链地址法链表地址法使用链表数组存储相应的数据,hash冲突时依次添加到链表后面进行处理。

开放地址法开放地址法是指在大小为m的数组中保存n个键值对。 这里,M N是m。 必须依赖数组中的空闲空间来解决冲突冲突。 基于此策略的所有方法都称为“开放地址”htdxbw表。 线性检测法是一种比较常用的“开放地址”htdxbw表的实现方式。 线性检测法的中心思想是在冲突发生时,按顺序查看表中的下一个单元格,直到找到空单元格或查看整个表。 简单来说,发生冲突后,我会去找下一个空哈希表地址。 如果哈希表足够大,则始终会找到空的哈希地址。

阵列阵列是线性表的数据结构。 使用一组连续的内存区域存储相同类型的数据集。 用下标操作要素。 检索效率高,插入、删除效率低(需要移位等) )。

链表是物理存储结构上不连续、无顺序的存储结构,数据元素的逻辑顺序通过链表中的指针链接顺序实现。 插入、删除效率高,检索效率低。

红黑树红黑树含有红黑节点,是一种自平衡的二叉搜索树

混洗地图

已知HashMap以key、value的形式被保存,在保存时在存储器中初始化长度为1~6的数组,根据一定的htdxbw算法得到htdxbw值。 此htdxbw值用作数组的下标。 如果htdxbw值发生冲突,数组中的元素将转换为链表,同一链表中元素的htdxbw值将匹配。 当链表长度达到8时,JDK8将当前链表转换为红黑树以提高效率。

见文章https://www.zhi Hu.com/question/26762707/answer/890181997

3359砖局域网. zhi Hu.com/p/28501879

3359砖局域网. zhi Hu.com/p/28587782

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。