equals():反映的是物件或變數具體的值,即兩個物件裡面包含的值--可能是物件的引用,也可能是值型別的值。hashCode():計算出物件例項的雜湊碼,並返回雜湊碼,又稱為雜湊函式。根類Object的hashCode()方法的計算依賴於物件例項的D(記憶體地址),故每個Object物件的hashCode都是唯一的;當然,當物件所對應的類重寫了hashCode()方法時,結果就截然不同了。 之所以有hashCode方法,是因為在批次的物件比較中,hashCode要比equals來得快,很多集合都用到了hashCode,比如HashTable。 兩個obj,如果equals()相等,hashCode()一定相等。 兩個obj,如果hashCode()相等,equals()不一定相等(Hash雜湊值有衝突的情況,雖然機率很低)。所以: 可以考慮在集合中,判斷兩個物件是否相等的規則是: 第一步,如果hashCode()相等,則檢視第二步,否則不相等; 第二步,檢視equals()是否相等,如果相等,則兩obj相等,否則還是不相等。 1、首先equals()和hashcode()這兩個方法都是從object類中繼承過來的。 equals()是對兩個物件的地址值進行的比較(即比較引用是否相同)。 hashCode()是一個本地方法,它的實現是根據本地機器相關的。2、Java語言對equals()的要求如下,這些要求是必須遵循的: A 對稱性:如果x.equals(y)返回是“true”,那麼y.equals(x)也應該返回是“true”。 B 反射性:x.equals(x)必須返回是“true”。 C 類推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那麼z.equals(x)也應該返回是“true”。 D 一致性:如果x.equals(y)返回是“true”,只要x和y內容一直不變,不管你重複x.equals(y)多少次,返回都是“true”。 任何情況下,x.equals(null),永遠返回是“false”;x.equals(和x不同型別的物件)永遠返回是“false”。3、equals()相等的兩個物件,hashcode()一定相等; 反過來:hashcode()不等,一定能推出equals()也不等; hashcode()相等,equals()可能相等,也可能不等。
equals():反映的是物件或變數具體的值,即兩個物件裡面包含的值--可能是物件的引用,也可能是值型別的值。hashCode():計算出物件例項的雜湊碼,並返回雜湊碼,又稱為雜湊函式。根類Object的hashCode()方法的計算依賴於物件例項的D(記憶體地址),故每個Object物件的hashCode都是唯一的;當然,當物件所對應的類重寫了hashCode()方法時,結果就截然不同了。 之所以有hashCode方法,是因為在批次的物件比較中,hashCode要比equals來得快,很多集合都用到了hashCode,比如HashTable。 兩個obj,如果equals()相等,hashCode()一定相等。 兩個obj,如果hashCode()相等,equals()不一定相等(Hash雜湊值有衝突的情況,雖然機率很低)。所以: 可以考慮在集合中,判斷兩個物件是否相等的規則是: 第一步,如果hashCode()相等,則檢視第二步,否則不相等; 第二步,檢視equals()是否相等,如果相等,則兩obj相等,否則還是不相等。 1、首先equals()和hashcode()這兩個方法都是從object類中繼承過來的。 equals()是對兩個物件的地址值進行的比較(即比較引用是否相同)。 hashCode()是一個本地方法,它的實現是根據本地機器相關的。2、Java語言對equals()的要求如下,這些要求是必須遵循的: A 對稱性:如果x.equals(y)返回是“true”,那麼y.equals(x)也應該返回是“true”。 B 反射性:x.equals(x)必須返回是“true”。 C 類推性:如果x.equals(y)返回是“true”,而且y.equals(z)返回是“true”,那麼z.equals(x)也應該返回是“true”。 D 一致性:如果x.equals(y)返回是“true”,只要x和y內容一直不變,不管你重複x.equals(y)多少次,返回都是“true”。 任何情況下,x.equals(null),永遠返回是“false”;x.equals(和x不同型別的物件)永遠返回是“false”。3、equals()相等的兩個物件,hashcode()一定相等; 反過來:hashcode()不等,一定能推出equals()也不等; hashcode()相等,equals()可能相等,也可能不等。