不对,两个对象的 hashCode()相同,equals()不一定 true。

    Java对象的eqauls方法和hashCode方法是这样规定的:
    1、相等(相同)的对象必须具有相等的哈希码(或者散列码)。
    2、如果两个对象的hashCode相同,它们并不一定相同。
    举例:

    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()相等即两个键值对的哈希值相等,然而哈希值相等,并不一定能得出键值对相等。