散列(hash):
将字符串转换为固定长度的数组或索引值的方法,叫做散列法。
hashmap的底层结构
hashmap是一个链表散列的数据结构,即是数组和链表的结合体。(也可能是数组+链表+红黑树)
数组:存储空间连续,占用内存严重,寻址容易,插入删除数据困难
链表:存储数据离散,内存不连续,寻址困难,插入删除数据容易
hashmap综合了数组和链表的优点,实现了寻址容易,插入删除数据同样容易
hashmap的结构示意图如下:
如图所示:每个hash节点的数据类型为htitem,该结构由一个键值对(key,value)和指向下一个hash节点的节点指针next组成。
hashmap的工作原理和存储原理
一、hashmap的工作原理:
1、根据键值key,散列函数得到hash值,即找到桶的位置,即在大数组数组中的index
2、在该桶位置处进行查询、删除以及插入键值对等操作
二、插入键值对的过程: