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

資訊專欄INFORMATION COLUMN

Java的hashcode與equals方法

taowen / 3583人閱讀

摘要:方法提供了對象的值,是一個方法,返回的默認(rèn)值與一致。通常這個值是對象頭部的一部分二進(jìn)制位組成的數(shù)字,具有一定的標(biāo)識對象的意義存在,但絕不定于地址。與的關(guān)系相等兩個對象,則一定要相等。

Java基礎(chǔ)系列

Java的hashcode與equals方法

Java類初始化順序

ThreadPoolExecutor線程池如何彈性伸縮

HashMap的幾個要點(diǎn)

Integer的緩存

什么場景下使用阻塞隊(duì)列

volatile的使用及DCL模式

try-catch-finally中的return

Java基礎(chǔ)的東東,hashcode和equals方法的區(qū)別。

hashcode

hashcode()方法提供了對象的hashCode值,是一個native方法,返回的默認(rèn)值與System.identityHashCode(obj)一致。

通常這個值是對象頭部的一部分二進(jìn)制位組成的數(shù)字,具有一定的標(biāo)識對象的意義存在,但絕不定于地址。

作用是:用一個數(shù)字來標(biāo)識對象。比如在HashMap、HashSet等類似的集合類中,如果用某個對象本身作為Key,即要基于這個對象實(shí)現(xiàn)Hash的寫入和查找,那么對象本身如何實(shí)現(xiàn)這個呢?就是基于hashcode這樣一個數(shù)字來完成的,只有數(shù)字才能完成計(jì)算和對比操作。

hashcode是否唯一

hashcode只能說是標(biāo)識對象,在hash算法中可以將對象相對離散開,這樣就可以在查找數(shù)據(jù)的時候根據(jù)這個key快速縮小數(shù)據(jù)的范圍,但hashcode不一定是唯一的,所以hash算法中定位到具體的鏈表后,需要循環(huán)鏈表,然后通過equals方法來對比Key是否是一樣的。

equals與hashcode的關(guān)系

equals相等兩個對象,則hashcode一定要相等。但是hashcode相等的兩個對象不一定equals相等。

小結(jié)

hashcode是為了算法快速定位數(shù)據(jù)而存在的,而equals是為了對比真實(shí)值而存在的。

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

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

相關(guān)文章

  • 【碼藝雜談】Java相同不同

    摘要:如果根據(jù)方法得到兩個對象不相同,那么兩個對象的方法的結(jié)果不一定不相同,我們可以利用這一點(diǎn)來提高散列表的性能。最后回到文章開頭的問題,如何判斷兩個對象或值是否相同這個問題其實(shí)有兩方面的含義,一方面是判斷的方法,另一方面是判斷的效率。 Java中有很多場景需要判斷兩個對象或者兩個值,那么 判斷是否相同的依據(jù)是什么? 如何判斷是否相同呢? 為了解釋這個問題,我們從Java語言的根說起,那...

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

    摘要:所以在對象沒有重寫這個方法時,默認(rèn)使用此方法,即比較對象的內(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
  • java equalshashcode

    摘要:簡單的一句話結(jié)論就是保證你定義的的對象擁有相同的。方法實(shí)現(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
  • Java進(jìn)階2 —— 使用Object通用方法

    摘要:判斷另外一個對象是否與當(dāng)前對象相等返回當(dāng)前對象的哈希值返回一個表示當(dāng)前對象的字符串喚醒一個等待當(dāng)前對象的鎖監(jiān)視器的線程。 原文鏈接:http://www.javacodegeeks.com/2015/09/using-methods-common-to-all-objects.html 本文是Java進(jìn)階課程的第二篇。 本課程的目標(biāo)是幫你更有效的使用Java。其中討論了一些高級主題,包...

    jzman 評論0 收藏0

發(fā)表評論

0條評論

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