本文主要是介绍两张图搞定哈希表基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.hashmap数据结构
数组存储值——key经哈希函数计算后的hashcode
各节点——相同的hashcode的value,按链表或红黑树存储
2.数据插入原理
简要概括图中步骤:
1、初始化数组
2、key由哈希函数计算得出hashcode,后续用链地址法解决哈希冲突
3、当hashcode相同情况下,key相同value覆盖,key不同就加入链表
4、当单链表节点数=8且数组长度>=64,链表转化为红黑树
3、扩容机制
定义:
即创建一个2倍长的新数组,然后再将旧数组中的数组迁移到新数组里。
数组扩容情况:
1、数组为空,首次扩容
2、当存在链表长度>=8,但数组长度小于64,则数组扩容
3、数组中的元素数量已经达到当前容量的75%(默认阈值为0.75),则扩容
这篇关于两张图搞定哈希表基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!