兩個(gè)對(duì)象的hashcode相同 hashCode相同,卻不相等?
hashCode相同,卻不相等?首先,hashcode是相同的,表示相同的內(nèi)存地址。Hashcode是一種根據(jù)對(duì)象屬性的定義來判斷對(duì)象是否相同的方法。如果hashcode相同,equal確定兩個(gè)對(duì)象相
hashCode相同,卻不相等?
首先,hashcode是相同的,表示相同的內(nèi)存地址。Hashcode是一種根據(jù)對(duì)象屬性的定義來判斷對(duì)象是否相同的方法。如果hashcode相同,equal確定兩個(gè)對(duì)象相同,即內(nèi)存地址相同。
如果兩個(gè)對(duì)象相同,那么它們的hashCode值一定要相同?
如果兩個(gè)對(duì)象具有相同的值(x.equals(y)==true),則它們必須具有相同的哈希代碼。Hash,一般翻譯為“Hash”,也直接音譯為“Hash”,是通過Hash算法將任意長度的輸入(也稱為預(yù)映像)轉(zhuǎn)換成固定長度的輸出,輸出為Hash值。這種變換是一種壓縮映射,即散列值的空間通常比輸入的空間小得多,不同的輸入可能被散列到同一個(gè)輸出中,不可能從散列值中唯一地確定輸入值。
1)如果對(duì)象相等,則哈希碼必須相等;
2)如果哈希碼相等,則對(duì)象可能不相等。
字符串hashcode是唯一的嗎?
結(jié)論:不是唯一的
原因:hashcode是一個(gè)整數(shù)值,取值范圍可以確定,而且字符串的個(gè)數(shù)是無限的,所以必須有兩個(gè)具有相同hashcode的字符串