不對,兩個物件的 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));
執行的結果:
str1:1179395 | str2:1179395
false
程式碼解讀:很顯然“通話”和“重地”的 hashCode() 相同,然而 equals() 則為 false,因為在散列表中,hashCode()相等即兩個鍵值對的雜湊值相等,然而雜湊值相等,並不一定能得出鍵值對相等。