在 Java 中,如果两个对象通过 equals
函数比较时返回了 true
,那么这两个对象的 hashCode
函数必须返回相同的值。所以如果在重写了 equals
函数之后不同时重写 hashCode
函数,那么就会出现两个对象通过 equals
函数比较返回 true
,但是它们的 hashCode
函数返回的值不同的情况。
这种情况下,如果你使用这两个对象作为键来存储在哈希表中,那么在查找的时候可能会出现问题。哈希表通常是通过对象的哈希值来定位对象所存储的位置的,如果两个对象的哈希值不同,那么就可能会导致这两个对象被存储在不同的位置,而在查找的时候会出现