Loading

HashMap

HashMap是基于Hashing原理。由数组,链表,红黑树组成。

        我们通过put()和get()方法储存和获取对象。当我们给put()方法传递键和值时候,我们先对键调用hashcode()方法,计算并返回的hashcode适用于找到Map数组的bucket位置来存储对象。HashMap是根据HashCode来进行计算Hash值的。

 Put()过程:1.对Key求Hash值,计算下标;

                       2.如果没有碰撞,就放入bucket中

                       3.如果发生了碰撞,就是用链的结构放在后边

                       4.如果链表大于阀值,就转为红黑树

                       5.如果节点已经存在就替换旧节点

                       6.如果bucket满了,就要进行扩容。

Get()过程:

             通过键值对来进行访问的数据结构。

为什么使用HashMap?

       超级快速的查询速度,可以达到0(1)的时间复杂度。

       动态的可变长存储数据。(和数组对比而言)

 

posted @ 2022-03-13 10:42  远乡人  阅读(39)  评论(0编辑  收藏  举报