作者pttnews (PTT新闻)
看板java
标题Re: [问题] 一题SCJP的题目,有关equals()&hashcod()
时间Wed Dec 7 10:45:51 2011
※ 引述《louisyu (louis)》之铭言:
: 我认为当两个物件比较的时候,
: 当equals() returns true,两个hashCode不一定会相等
我不是高手,如果我解释错误,请各位指点
如果是
String A = "ABCDE";
String B = A;
这时候 A与B 都是参考同一记忆体位址的物件
所以 两个物件用 == 比较的时候 回传 true
而且 两个hashCode会相等 因为他们是同一个物件
但是
String A = "ABCDE";
String B = "ABCDE" + "";
这时候 A与B 都不是参考同一记忆体位址的物件
所以 两个物件用 == 比较的时候 回传 false
而且 两个hashCode不会相等 因为他们不是同一个物件
如果要比较 A B 内容是否相等
只能靠 equals 来比对。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.120.175.188
2F:→ gwokae:有趣的是举的例子竟然是错的,这个例子hashCode跟equals都 12/08 08:27
3F:→ gwokae:== 都是 true 12/08 08:30
4F:→ adrianshum:错误太多... 答的也和原问题扯不上关系 12/08 08:51