当前位置: 首页 > news >正文

邢台做网站的价格究竟多少钱?南通seo

邢台做网站的价格究竟多少钱?,南通seo,备案ip 查询网站查询,网站开发和桌面开发哪个难HashMap 怎么解决的哈希碰撞问题? 主要采用了链地址法。具体来说: 每个哈希桶不仅存储一个键-值对,而是存储一个链表或树结构。这样,具有相同哈希值的键-值对可以被存储在同一个哈希桶中,并通过链表或树结构来解决碰…

HashMap 怎么解决的哈希碰撞问题?

主要采用了链地址法。具体来说:

  1. 每个哈希桶不仅存储一个键-值对,而是存储一个链表或树结构。这样,具有相同哈希值的键-值对可以被存储在同一个哈希桶中,并通过链表或树结构来解决碰撞。
  2. 当哈希碰撞发生时,新的键-值对会被添加到哈希桶的链表或树的末尾。这确保了相同哈希值的键-值对都能被正确存储和检索。
  3. 如果链表的长度超过了某个阈值,Java 8 中的 HashMap 会将链表转化为红黑树,以提高检索性能。这是 Java 8 的一个优化,它降低了最坏情况下的时间复杂度。

这个改进使 Java 8 中的 HashMap 在处理哈希碰撞时更加健壮,尤其是在哈希表的负载因子(load factor)较高的情况下。哈希表的负载因子是键-值对数量与桶数量的比值,当负载因子过高时,哈希碰撞可能会频繁发生,导致性能下降。通过将链表转化为红黑树,Java 8 的 HashMap 能够更好地处理这种情况。

HashMap的负载因子默认是多少?默认初始容量?

HashMap 的默认负载因子是 0.75,默认的初始容量为 16。初始容量是指 HashMap 在创建时的初始桶数量。负载因子用于确定何时触发扩容操作。

负载因子 0.75 意味着当 HashMap 中的元素数量达到当前容量的 75% 时,HashMap 将自动进行扩容操作,以保持性能。这是一个平衡的值,通常在性能和内存占用之间提供了合理的折中。

HashMap 的容量总是2的幂,这有助于哈希值与桶的索引之间的关系更加高效。因此,默认初始容量 16 是2的幂。如果以不是2的幂的值创建 HashMap,它将自动向上取最接近的2的幂的值。

插入之前还是之后去检查是否需要扩容?

在 Java 8 中的 HashMap 实现中,插入操作发生后,HashMap 会首先插入新元素到合适的桶中,然后再检查是否需要进行扩容。如果在插入之后元素数量达到或超过了负载因子乘以当前容量,HashMap 就会触发扩容操作。

这种在插入之后进行扩容检查的方式有助于减少插入操作的复杂性,并使 HashMap 在处理插入操作时能够更高效地运行。

链表插入方式?红黑树插入方式?

当发生哈希碰撞时,会根据链表长度或者树结构的情况,采用不同的方式来插入元素:

  1. 链表插入方式

    • 当哈希桶中的键值对数量较少,并且链表长度小于等于8时,新的键值对会被插入到链表的末尾。
    • 这种方式保持了链表的顺序,没有破坏原有的插入顺序,但当链表长度超过一定阈值(8)& 数组长度 > 64时,会触发链表转化为红黑树的操作。
  2. 红黑树插入方式

    • 当链表长度超过了一定阈值(8),HashMap 会将链表转化为红黑树(红黑树是一种自平衡的二叉搜索树)。
    • 新的键值对会按照红黑树的规则插入到红黑树中,以提高检索性能。红黑树的平均检索时间复杂度是 O(log n)。
    • 当红黑树的元素数量减少到一定程度(6),会将红黑树转换回链表,以节省内存。

哈希表的扩容倍数

哈希表的扩容倍数是 2。这意味着当哈希表需要进行扩容时,它会将当前的容量翻倍。这是为了确保哈希表能够保持较低的负载因子,以提高性能。

例如,如果初始容量为 16,当元素数量达到或超过 16 * 0.75 = 12 时,HashMap 将触发扩容操作。在这种情况下,HashMap 会创建一个新的容量为 32 的哈希表,然后重新分配元素到新的桶中。

http://www.mmbaike.com/news/96541.html

相关文章:

  • 人妖手术是怎么做的视频网站创意营销
  • 购物网站模块是什么意思网络平台怎么创建
  • 网站建设与实训站长之家怎么找网址
  • 大连做公司网站哪家好网络热词有哪些
  • 备案网站可以做卡盟么交换链接营销
  • 美国购买网站空间产品推广计划
  • 做网站 报价seo实战密码第三版
  • asp网站怎么验证到百度站长网站排名优化化快排优化
  • 交互做的好的网站网络推广方案的内容
  • 铁岭网络推广网站建设免费推广引流软件
  • 淮安做网站洛阳seo网络推广
  • 有什么好的免费网站做教育宣传语网络营销推广方式
  • 重庆做网站电话朝阳区seo
  • 如何攻击织梦做的网站方法西安seo公司哪家好
  • 不用开源程序怎么做网站九易建网站的建站模板
  • mvc网站开发视频百度一下官网手机版
  • 长春网络营销网站广州疫情最新情况
  • 深圳市企业网站建设网络营销论文题目
  • WordPress首页播放音乐草根seo视频大全网站
  • iis端口相同不同网站建设百度网首页官网
  • 抓取的网站如何做seo百度网盘搜索免费资源
  • python做网站php淘宝店铺怎么推广
  • 有没有专门做布料的网站免费推广软件 推广帮手
  • wordpress08影视站百度推广管理
  • 怎么做刷网站流量生意优化大师有用吗
  • 昌都市网站建设关键词网站排名软件
  • 模具做外贸网站市场调研方案
  • 农产品价格实时价格网网站优化外包
  • 深圳大型论坛网站建设百度搜索引擎api
  • 网站绑定两个域名怎么做跳转推广搜索引擎