栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java中为什么equals方法要重写hashcode方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java中为什么equals方法要重写hashcode方法

哈希表是由数组和链表组成,这个数组的索引值就是hashcode也就是地址,我们知道数组根据索引值查找数据的时间复杂度是O(1),索引我们equals方法比较的地址也就是这个数组的索引值,也就是hashcode值

 

哈希表有很多算法,最简单的最常见的一种是取余算法:

就是由这个数和10取余,求到它的个位数,然后根据这个个位数进行分类,相同个位数放到同一个数组下,数组下的数据之间是由链表连接起来的,所以hashcode值相同并不代表数值就相同,它们存在哈希冲突。

举个例子:

String的equals方法就是这样重写的,我们先比较地址是否相等,因为根据地址索引查到数据很快,再判断是不是string类型的,再比较内容。

总结:hashcode值存在哈希冲突

equals比较的是hashcode地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/602726.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号