Topic: 关于equals()和hashCode()方法的疑问 |
Print this page |
1.关于equals()和hashCode()方法的疑问 | Copy to clipboard |
Posted by: lymhappy123 Posted on: 2008-12-11 19:59 在自定义的类中,如果要比较自定义的类的2个对象,重写了equals()方法的同时,一定要重写hashCode()方法吗?如果2个对象equals,它们的hashcode一定相同吗?hashcode相同的,一定equals吗? |
2.Re:关于equals()和hashCode()方法的疑问 [Re: lymhappy123] | Copy to clipboard |
Posted by: micsolaris Posted on: 2008-12-11 21:39 重写equal()方法不一定要重写hashCode方法 两个对象的equals不一定说hashCode相等 做个简单的比喻吧,我们每个人都有指纹,并不能肯定说两个人的指纹都不一样,但是一般情况下很难找到两个指纹一样的人。所以在默认的Object中定义了一个hashCode方法来识别,除非你自己重写了这方法,不然我们一般认为hashCode方法后的结果如果相同则为同一个对象 |
3.Re:关于equals()和hashCode()方法的疑问 [Re: micsolaris] | Copy to clipboard |
Posted by: JiafanZhou Posted on: 2008-12-26 23:40 micsolaris wrote: This is usually correct, however when refers to any hash functions like Hashmap or Hashset, then it is compelling to both override equals and hashCode methods. |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |