當前位置:編程學習大全網 - 源碼下載 - java裏equals和hashCode之間什麽關系

java裏equals和hashCode之間什麽關系

equals與hashcode的關系是:

兩個對象在equals相等的情況下,hashcode有可能相等也有可能不相等,

而兩個對象在hashcode不相等的情況下,equals也必定不相等。

理解equals的應用:它是用於用戶在進行對比的時候,這個時候對比的是內容是否相等

理解hashcode的應用:例如set集合,它的不可重復,進行對比的便是hashcode是否相等,因此set集合實現了不可重復。

如果根據 equals(Object) 方法,兩個對象是相等的,那麽對這兩個對象中的每個對象調用 hashCode 方法都必須生成相同的整數結果。

即使兩個hashCode()返回的結果相等,兩個對象的equals方法也不壹定相等。

擴展資料:

equals:

電腦編程語言,被用來檢測兩個對象是否相等,即兩個對象的內容是否相等。

equals 方法(是String類從它的超類Object中繼承的)

==用於比較引用和比較基本數據類型時具有不同的功能:

比較基本數據類型,如果兩個值相同,則結果為true

而在比較引用時,如果引用指向內存中的同壹對象,結果為true

hashCode:

是jdk根據對象的地址或者字符串或者數字算出來的int類型的數值。

支持此方法是為了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

HashMap對象是根據其Key的hashCode來獲取對應的Value。

在重寫父類的equals方法時,也重寫hashcode方法,使相等的兩個對象獲取的HashCode也相等。

這樣當此對象做Map類中的Key時,兩個equals為true的對象其獲取的value都是同壹個,比較符合實際。

參考資料:

百度百科 ------ hashcode

百度百科 ------ equals

  • 上一篇:CentOS6.2安裝mysql5.5+kangle+easypanel怎麽弄
  • 下一篇:江蘇無錫在微信公眾號,妳為什麽提取公積金?總是顯示妳的銀行卡信息沒有通過銀行驗證。
  • copyright 2024編程學習大全網