首页 > 代码库 > 终于理解了比较equals为什么要重写hashcode
终于理解了比较equals为什么要重写hashcode
打个比方,hashCode() 方法是好比是字典前面的目录,有了这个目录你查东西就会快的多,equals方法是比较的内容,就好比根据目录查内容。同一个的内容自然要有唯一的目录,所以hashCode和equals方法一般一起实现。比如Student类的equals方法根据name,school,age重写的,那么hashCode也要根据这三个属性去散列存储的地址。hash表的数据结构是链表的数组,即每个数组元素都是一个链表,链表中存的是hashCode值相等的元素,所以根据hashCode能快速的查找。Eclipse有自动生成的写法,你可以自己生成看看。但是hashCode的具体写法要依据情况去写,没固定写法。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。