HashMap是用于存放key-value对象的容器。
本质上HashMap是“数组+链表”的数据结构。
1、HashMap的存储过程
(1)通过key生成HashCode
(2)再由HashCode得到key-value存储到数组上的索引位置Index。
(3)判断数组的Index上是否已经有存储的对象,(1)为空的话,将key-value对象(存的是对象的内存地址,而不是对象数据本身)存储在该位置。(2)不为空时,将key-value对象存储在该位置的后续链表位置上。
HashMap数据结构
2、HashMap的查询过程
(1)由key生成HashCode。
(2)根据HashCode计算得到数组上的索引位置Index。
(3)根据Index在数组的该位置上,对链表进行遍历查询。
3、HashMap的目的
(1)数组:存储占用的空间连续。查询速度快,但增、删速度慢。
(2)链表:存储占用的空间不连续,查询速度慢,但增、删速度快。
为了结合二者的优点,便采用了“数组+链表”的数据结构。











网友评论