hashCode()和equals()的區別?(skycto JEEditor)

書寫人生發表於2019-09-15

兩個物件hashCode()相同,equals() 也一定為 true嗎?

首先,答案肯定是不一定。同時反過來equals為true,hashCode也不一定相同。

類的hashCode方法和equals方法都可以重寫,返回的值完全在於自己定義。

 

hashCode()返回該物件的雜湊碼值;equals()返回兩個物件是否相等。

 

關於hashCode和equal是方法是有一些 常規協定 :

1、兩個物件用equals()比較返回true,那麼兩個物件的hashCode()方法必須返回相同的結果。

2、兩個物件用equals()比較返回false,不要求hashCode()方法也一定返回不同的值,但是最好返回不同值,億提搞雜湊表效能。

3、重寫equals()方法,必須重寫hashCode()方法,以保證equals方法相等時兩個物件hashcode返回相同的值。
————————————————
版權宣告:本文為CSDN博主「ConstXiong」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/meism5/article/details/89166768


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69947338/viewspace-2657055/,如需轉載,請註明出處,否則將追究法律責任。

相關文章