成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Object的hashCode方法與equals方法的關(guān)系

princekin / 2691人閱讀

摘要:的常規(guī)協(xié)定是在應用程序執(zhí)行期間,在對同一對象多次調(diào)用方法時,必須一致地返回相同的整數(shù),前提是將對象進行比較時所用的信息沒有被修改。因此,重寫方法以后,原來的系統(tǒng)的方可能不太適用。

hashCode 的常規(guī)協(xié)定是:

在 Java 應用程序執(zhí)行期間,在對同一對象多次調(diào)用 hashCode 方法時,必須一致地返回相同的整數(shù),前提是將對象進行 equals 比較時所用的信息沒有被修改。從某一應用程序的一次執(zhí)行到同一應用程序的另一次執(zhí)行,該整數(shù)無需保持一致。
如果根據(jù) equals(Object) 方法,兩個對象是相等的,那么對這兩個對象中的每個對象調(diào)用 hashCode 方法都必須生成相同的整數(shù)結(jié)果。
如果根據(jù) equals(java.lang.Object) 方法,兩個對象不相等,那么對這兩個對象中的任一對象上調(diào)用 hashCode 方法不 要求一定生成不同的整數(shù)結(jié)果。但是,程序員應該意識到,為不相等的對象生成不同整數(shù)結(jié)果可以提高哈希表的性能。

因此不同的對象一般hashcode要不一樣。因此,重寫equals方法以后,原來的系統(tǒng)的hashcode方可能不太適用。一般要重寫hashcode方法。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65310.html

相關(guān)文章

  • 第3章:抽象數(shù)據(jù)類型(ADT)和面向?qū)ο缶幊蹋∣OP) 3.5 ADT和OOP中等價性

    摘要:抽象函數(shù)引發(fā)的關(guān)系是等價關(guān)系。所以當且僅當通過調(diào)用抽象數(shù)據(jù)類型的任何操作不能區(qū)分它們時,兩個對象是相等的。必須為每個抽象數(shù)據(jù)類型適當?shù)囟x操作。一般來說,在面向?qū)ο缶幊讨惺褂檬且环N陋習。 大綱 什么是等價性?為什么要討論等價性?三種等價性的方式==與equals()不可變類型的等價性對象契約可變類型的等價性自動包裝和等價性 什么是等價性?為什么要討論等價性? ADT上的相等操作 ADT...

    Fundebug 評論0 收藏0
  • Java equals 和 == 完全解析

    摘要:所以在對象沒有重寫這個方法時,默認使用此方法,即比較對象的內(nèi)存地址值。結(jié)果為可以發(fā)現(xiàn)不管對象的內(nèi)存地址是否相同并不影響其結(jié)果,所以類型比較的是數(shù)據(jù)值而不是內(nèi)存地址值。 showImg(https://segmentfault.com/img/bVbqpku?w=800&h=344); 今天朋友突然問到一個問題: 兩個對象使用x.equals(y)判斷結(jié)果為true時,兩個對象的hash...

    mikasa 評論0 收藏0
  • 關(guān)于equalshashCode方法一些理解

    摘要:而這次在一的一方實體里重寫基類的和方法做去重,感覺用的代碼量減少了,又能提高效率,所以我這里對這兩個方法做些自己的理解。不相等的兩個對象,不一定不相等。不相等,那么是一定不等的。文章若有錯誤之處,歡迎指出。 昨天寫hibernate一對多查詢的時候,用set集合來儲存值,我們都知道java中List集合是有序,可重復的,Set集合是無序,不可重復的。所以當時寫這個查詢的時候果斷用Set...

    ctriptech 評論0 收藏0
  • java equalshashcode

    摘要:簡單的一句話結(jié)論就是保證你定義的的對象擁有相同的。方法實現(xiàn)等價關(guān)系自反性。即一個對象必須等于其自身。對于任意引用值和返回真時,也一定為真?zhèn)鬟f性。發(fā)現(xiàn)一樣,調(diào)用方法繼續(xù)比較,發(fā)現(xiàn)個對象一樣。 簡單的一句話結(jié)論就是:保證你定義的equal的對象擁有相同的hash code。1)兩個對象equals()為真,則它們的hashCode() 一定相同2)兩個對象hashCode()相同,equa...

    HollisChuang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<