您的哈希码确实满足以下属性:如果两个对象相等,则它们的哈希码必须相等。因此,这样就足够了。但是,在哈希码中创建冲突非常简单,这会降低基于哈希的数据结构的性能。
但我会稍微不同地实现它:
public int hashCode() { return a * 13 + b.hashCode() * 23 + (c? 31: 7);}你应该检查出文档的
hashCode()方法的
Object。它列出了哈希码必须满足的条件。

您的哈希码确实满足以下属性:如果两个对象相等,则它们的哈希码必须相等。因此,这样就足够了。但是,在哈希码中创建冲突非常简单,这会降低基于哈希的数据结构的性能。
但我会稍微不同地实现它:
public int hashCode() { return a * 13 + b.hashCode() * 23 + (c? 31: 7);}你应该检查出文档的
hashCode()方法的
Object。它列出了哈希码必须满足的条件。