HashMap是如何解决Hash碰撞的问题的?

HashMap是如何解决Hash碰撞的问题的?。小编来告诉你更多相关信息。HashMap是如何解决Hash碰撞的问题的今天分享:HashMap是如何解决Hash碰撞的问题的的相关经验,请看下面详细的介绍。首先

HashMap是如何解决Hash碰撞的问题的?。小编来告诉你更多相关信息。

HashMap是如何解决Hash碰撞的问题的

今天分享:HashMap是如何解决Hash碰撞的问题的的相关经验,请看下面详细的介绍。

首先要知道什么是Hash碰撞,通俗的讲就是当两个key运算出来的hash值与数组长度n-1进行与运算之后发现定位出来的位置是一样的。

这就是Hash碰撞、Hash冲突。

HashMap是如何解决Hash碰撞的问题的?

HashMap是通过在两个key计算出的同一个位置上挂一个链表,在这个链表放入多个元素。

让多个key-value对,同时放在数组的同一个位置上。

后面在get的时候,如果发现该位置挂了一个链表,只要遍历这个链表找到自己的key-value就可以了。

这里就会有一个性能问题?假设你的链表随着时间的推移变得很长,在后续遍历的时候,性能就会比较差,时间复杂度是O(n)。

所以HashMap做了一个优化,如果链表达到了一定的长度之后,会将其转换为红黑树,红黑树的好处就是遍历的时候时间间复杂度是O(logn),性能会比链表高一些。

上述分享的HashMap是如何解决Hash碰撞的问题的?的详细讲解,仅供大家参考建议!

本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
科技百科

Helm和Kubectl的区别有哪些

2023-9-18 21:46:33

科技百科

HashMap是如何扩容的(HashMap的扩容机制是怎样的?)

2023-9-18 21:48:04

搜索