一,基础知识
1,数组,数组采用连续的存储单元存储数据,属于顺序存储结构,对于指定下标的查找,时间复杂度是O(1)。
2,链表:链表在内存空间上的存储是不连续的,属于链式存储结构。每个节点保存指向下一节点的指针。删除和新增只需新建节点或改变指针,速度快。查询需遍历,比较慢慢。
3,hash表,通过对key值的hash计算,确定数据的存储位置。
4,Entry:hashMap的内部类,包含一个key和value键值对,一个hash值,以及指向下一个Entry的引用next
二,hashMap底层原理
1,hashMap的主体是Entry的数组。数组每个元素,即Entry,可存储当前的key ,hash,及value。
2,存储或获取数据时,通过hash函数获取key对应的hash值,经过转换找到数组的坐标,再对value进行设置或读取
3,hash冲突时,数组的一个位置对应多个Entry,Entry间便形成链表结构,通过引用next指向下一Entry。存储或查找数据时,对数组此位置的Entry链表进行遍历,查看key值是否已存在
hashMap底层原理(简单直白)
最新推荐文章于 2024-07-05 14:45:08 发布