看板 java 關於我們 聯絡資訊
※ 引述《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
tkcn:hashCode 會相等才對 http://goo.gl/F1XpE 12/07 23:24
gwokae:有趣的是舉的例子竟然是錯的,這個例子hashCode跟equals都 12/08 08:27
gwokae:== 都是 true 12/08 08:30
adrianshum:錯誤太多... 答的也和原問題扯不上關係 12/08 08:51