Re: [問題] 一題SCJP的題目,有關equals()&hashcod()

看板java作者 (PTT新聞)時間12年前 (2011/12/07 10:45), 編輯推噓0(004)
留言4則, 3人參與, 最新討論串3/4 (看更多)
※ 引述《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

12/07 23:24, , 1F
hashCode 會相等才對 http://goo.gl/F1XpE
12/07 23:24, 1F

12/08 08:27, , 2F
有趣的是舉的例子竟然是錯的,這個例子hashCode跟equals都
12/08 08:27, 2F

12/08 08:30, , 3F
== 都是 true
12/08 08:30, 3F

12/08 08:51, , 4F
錯誤太多... 答的也和原問題扯不上關係
12/08 08:51, 4F
文章代碼(AID): #1EtjDXDF (java)
討論串 (同標題文章)
文章代碼(AID): #1EtjDXDF (java)