HashMap深入浅出的理解

HashMap

存储数据方式:K,V

底层存储:数组加链表结构

 HashMap深入浅出的理解

什么是数组?

数组:采用连续的数据单元来存储数据

数组结构的特点:查询速度比较快,插入速度很慢。 那为什么插入速度慢呢? 因为:当你插入,删除数据的时候,底层数组会发生变化假如你把 2 这个节点删除掉后,后面的节点会向前移位,如果不移位局断开了,所以插入,删除很慢

 

链表:非连续,非顺序的数据结构

HashMap深入浅出的理解

特点:插入快,查询比较慢

HashMap存储数据: 数据存储位置是根据 map中的K 去调用hash散列算法生成一个hash值来确定位置,如果位置相同,首先去下标去寻找该位置上是否存在数据,如果存在数据就会存储到该位置下的链表结构中 ------->next 并指向该位置  也就是我们面试常说的hash碰撞

HashMap获取数据:首先通过K能得到hash值,可能发现该数据下并不是我们想要的数据,接下来会拿hash值 ------>next数组链表下去比较hash值得大小,相等的话会将数据取出来

HashMap深入浅出的理解