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