7月05日

6.什么是哈希碰撞/哈希冲突

如果有两个(           )通过(            )计算出来的哈希码是(             ),则称他们发生了哈希碰撞/哈希冲突

如何解决哈希冲突

1.(         )

优点:只要哈希表还有位置,通过不断的探测,总能找到合适的位置。
缺点:探测的次数不可控,一旦探测次数骤增,会严重影响哈希表的读写性能。

2.(                    )HashCode默认使用这个

当某一个链表的长度超过(   )后,此时的链表会转化为(         )

HashMap采用的是什么策略

HashMap在JDK1.8版本中是通过(               )以及红黑树来解决Hash冲突的问题,其中红黑树是为了优化Hash表的链表过长导致时间复杂度增加的问题,当链表长度大于等于8并且Hash表的容量大于64的时候,再向链表添加元素,就会触发链表向红黑树的一个转化。

7.HashMap和TreeMap的区别

HashMap通过(    )和(      )方法储存和获取对象

HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链表的下一个节点中。

TreeMap基于红黑树实现。TreeMap的基本操作 containsKey、get、put 和 remove

TreeMap的底层结构就是一个(数组),中每一个元素又是一个红黑树.当添加一个元素的时候,根据key的hash值来确定插入到哪一个桶中(确定插入数组中的位置),当桶中有多个元素时,使用红黑树进行保存;当一个桶中存放的数据过多,那么根据key查找的效率就会降低
 

6.  不同字符串   同样的哈希算法   一样的

开放地址法

拉链法(链地址法)

阈值8      红黑树

链式寻址法

7.put      get

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值