兩個(gè)對象的 hashCode() 相同,則 equals() 也一定為 true,對嗎?

不對,兩個(gè)對象的 hashCode() 相同,equals() 不一定 true。
代碼示例:
String str1 = "通話";
String str2 = "重地";
System. out. println(String. format("str1:%d | str2:%d", ?str1. hashCode(),str2. hashCode()));
System. out. println(str1. equals(str2));
執(zhí)行的結(jié)果:
str1:1179395 | str2:1179395
false
代碼解讀:很顯然“通話”和“重地”的 hashCode() 相同,然而 equals() 則為 false,因?yàn)樵谏⒘斜碇校琱ashCode() 相等即兩個(gè)鍵值對的哈希值相等,然而哈希值相等,并不一定能得出鍵值對相等。
標(biāo)簽: