JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:HashMap關於hashCode()與equals()的問題 [Re:sir_ap]
weberhwang





發文: 53
積分: 0
於 2018-05-18 01:05 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
首先感謝各位大大熱心回覆

看完幾位大大的回覆後…我自己總結如下,若有誤,再請指正,感謝。

1.Hashtable確實必須經過 ==、hashcode()、equals() 的比較後,才能決定是否value中有相同的物件存在
若有,就不會允許放入。
至於hashcode()是否相等,是由equals()來決定。
故若hashcode()判斷相同,而equals()判斷不同時,會視為是不同的key,即便表面上看來hashcode值是相同的。
2.所以當hashcode()、equals()設計不當時,就有可能發生key值一樣,但卻各別對應不同的物件狀況。
例如:(7001,小明) (7001,小黃)
3.承上,所以Hashtable的key這個欄位,並非重覆就寫不進去,實際上是有可能會寫進去的。
我一直以為JVM本身會限制我key相同時,就寫不進去,實際上,還是要看hashcode()、equals()的設計。
因此在設計前述hashcode()、equals()時要盡量達到自己商業邏輯上想要的唯一性。


weberhwang edited on 2018-05-18 01:22
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1329 HashMap關於hashCode()與equals()的問題 weberhwang 211 2018-05-16 01:52
1213 Re:HashMap關於hashCode()與equals()的問題 layolayo2002 176 2018-05-16 04:25
1271 Re:HashMap關於hashCode()與equals()的問題 weberhwang 235 2018-05-16 04:39
1226 Re:HashMap關於hashCode()與equals()的問題 sir_ap 40 2018-05-16 09:06
1236 Re:HashMap關於hashCode()與equals()的問題 kentyeh 1825 2018-05-16 12:56
1239 Re:HashMap關於hashCode()與equals()的問題 weberhwang 3756 2018-05-17 01:54
1160 Re:HashMap關於hashCode()與equals()的問題 sir_ap 757 2018-05-17 07:47
1151 Re:HashMap關於hashCode()與equals()的問題 weberhwang 486 2018-05-18 01:05
1266 Re:HashMap關於hashCode()與equals()的問題 kentyeh 839 2018-05-18 03:55
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8