HashMap存儲自定義類,須要重寫自定義類的哪些方法?

重寫 hashcode 與 equals 方法。

  • hashCode() 方法是一個本地 native 方法,返回的是對象引用中存儲的對象的內存地址,而 equals 方法是利用 == 來比較的,也是對象的內存地址。

HashMap 中 Key 是這樣比較的,先求出 Key 的 hashcode(),比較是否相等,相等在比較 equals(),若相等就認爲他們是相等的。若是隻重寫hashcode() 不重寫 equals() ,在調用 equals() 時就會比較他們的內存地址。因此必須兩個方法一塊兒重寫。code

相關文章
相關標籤/搜索