作者adrianshum (Alien)
看板java
标题Re: [问题] 一题SCJP的题目,有关equals()&hashcod()
时间Wed Dec 7 09:29:03 2011
※ 引述《louisyu (louis)》之铭言:
: 在练习SCJP的时候有一题一直搞不懂
[43]
: Which of the following will fulfill the equals() and hashCode() contracts
: for this class?
: 正确解答是:
: c. return ((SortOf)o).code.length()*((SortOf)o).bal ==
: this.code.length()*this.bal;
: d. return ((SortOf)o).code.length()*((SortOf)o).bal*((SortOf)o).rate ==
: this.code.length()*this.bal*this.rate;
: 我了解为什麽c是对的,但我不懂为什麽d也是对的
: 我认为当两个物件比较的时候,
: 当equals() returns true,两个hashCode不一定会相等
: 所以d不应该是正确答案
: 不晓得有没有人可以解答我的问题
: 为什麽d是对的
你明白所谓 equals 与 hashcode 的 contract 是什麽意思吗?
指的是:如果 equals 的话,hashcode 一定要一样。(反之未必)
再比对上面的答案,你明白了吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 183.179.61.91
1F:推 gwokae:Inheritance contract正解,其实去看Object的api就可以了解 12/07 09:49