HashMap底层用到了什么数据结构?

HashMap底层用到了什么数据结构?

1.用到了数组,链表,红黑树结构 。
2.数组长度是16,每个元素都是key-value结构, 元素存储到%75(0.75负载因子)进行 2倍扩容。
3.存储元素的算法是 hash(key) % 16 根据key进行hash计算得到的值来对数组长度16 取模,余数作为元素在数组中的存储索引位置。
4.链表为了解决Hash冲突 , 不同的key进行 hash计算可能hash值一样,那么技术出来的存储索引位置也一样,这叫hash冲突,HashMap使用链表的方式来解决Hash冲突,就是在当前索引位置的元素上向下拖一个链表。
5.红黑树是为了提高查询速度了,因为链表过长,查询速度会很慢,红黑树能提高查询速度 ,当链表长度达到 8 编程 红黑树,当链表长度 小于 6 编程链表。

猜你喜欢

转载自blog.csdn.net/weixin_53587810/article/details/113420993