哈希冲突的处理:链地址法(Seperate Chaining)
哈希表:
生成的索引,可能是负整数,需要去掉符号“-”。和31个1进行按位与操作。
接着按照索引位置存储进数组:
如果再来个K3进行哈希转换成的索引还是1呢?依然放进1位置里面:
此时的k2和k3就形成了链表的形式。
查找表也可以使用平衡树结构:
例如计算一个元素的哈希值所对应的索引,接着从哈希表中找到该索引的TreeMap,接着讲元素插入TreeMap接口。
在Java8之前,每一个位置对应一个链表
Java8开始,当哈希冲突达到一定程度后,就将每一个位置从链表转成红黑树。
温馨提示
关注我的公众号【Java剑主】,学习更多有深度的技术文章。本博客不在记录原创博文,请移步公众号获取最新内容。
修道注重根基,熟透原理方能看透事物本质,编程亦如此! Java修炼之道,道心坚不移!踏剑寻梦,不忘初心!