怎么用Java哈希桶方式解决哈希冲突
导读:本文共2283字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一. 实现形式一(键值对只能为整数)我们可以先实现一个比较简单的哈希表,使用java中解决哈希冲突的方法,即哈希桶(开散列)方式实现,其中注意:可以使用内部类方式定义节点负载因子默认为0.75因为我们使用的是哈希桶方式解决哈希冲突,所以在我们扩容成功之后,原来桶中的数据得重新哈希计算出新的位置,不然就和原来桶中的数据的位置不一样了相关代码如下publicclas... ...
目录
(为您整理了一些要点),点击可以直达。我们可以先实现一个比较简单的哈希表,使用java中解决哈希冲突的方法,即哈希桶(开散列)方式实现,其中注意:
可以使用内部类方式定义节点
负载因子默认为0.75
因为我们使用的是哈希桶方式解决哈希冲突,所以在我们扩容成功之后,原来桶中的数据得重新哈希计算出新的位置,不然就和原来桶中的数据的位置不一样了
相关代码如下
上面我们实现的哈希表中的键值对只能存放整型数据,但若是比较复杂的类型,例如字符串,对象等等,此时就需要用到泛型了。其中注意:
同样可以使用内部类方式定义节点类型
使用泛型
将泛型转换成整数时要用到hashCode
方法
利用对象哈希值确定下标,为了防止哈希值太大,应该让其%数组的长度
遍历数组下标时,利用equals方法比较key是否相同
存放自定义的数据类型时,一定要重写hashcode
和equals方法
相关代码如下
怎么用Java哈希桶方式解决哈希冲突的详细内容,希望对您有所帮助,信息来源于网络。