hashCode()和equals()的區別?(skycto JEEditor)
兩個物件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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- final、finally、finalize()的區別(skycto JEEditor)
- Java基礎- ==和equals和hashCode的區別Java
- final與static關鍵字的區別?(skycto JEEditor)
- String的equals和hashCode方法
- equals & hashCode
- java~重寫hashcode和equalsJava
- 搞懂 Java equals 和 hashCode 方法Java
- ==和equals方法的區別
- 【Java】equals 和 == 的區別Java
- final關鍵字的作用(skycto JEEditor)
- equals&hashCode
- hashCode()與equals()
- 自動生成hashcode和equals方法
- java 中equals和==的區別Java
- Map集合(Java基礎、skycto JEEditor)Java
- 關於重寫equals()和hashCode()的思考
- ==、equals、hashcode總結
- 【ASP.net】Equals 和 == 的區別ASP.NET
- 深入理解equals和==的區別
- Java中 equals() 方法和 == 的區別Java
- hashCode和identityHashCode的區別你知道嗎?IDE
- jvm的記憶體引數配置(skycto JEEditor)JVM記憶體
- finally語句塊的有限範圍(skycto JEEditor)
- Java基礎系列-equals方法和hashCode方法Java
- Java中hashcode和equals效能注意點 - ShaiJavaAI
- 你真的知道 == 和 equals 的區別嗎?
- 你真的懂 == 和 equals 的區別嗎?
- 『Java 語法基礎』對 equals() 和 hashCode() 的理解Java
- 關於equals()和hashcode()的一些約定
- “==”、“equals()”、“hashcode()”之間的祕密
- Hashcode相同但是equals不同的例子
- 小白科普:敏捷軟體開發(skycto JEEditor)敏捷
- JavaWeb DWR使用總結(skycto JEEditor框架功能)JavaWeb框架
- 關於HashMap的key重寫hashcode和equals的理解HashMap
- java自定義equals函式和hashCode函式Java函式
- 物件只定義了Equals和Hashcode方法之一的漏洞物件
- equals與hashCode關係梳理
- 第四章 ==和equals()的區別