今天爱分享给大家带来两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对?【面试题详解】,希望能够帮助到大家。
【参考答案】
对。
如果对象要保存在 HashSet 或 HashMap 中,它们的 equals 相等,那么,它们的 hashcode
值就必须相等。
如果不是要保存在 HashSet 或 HashMap,则与 hashcode 没有什么关系了,这时候
hashcode 不等是可以的,例如 arrayList 存储的对象就不用实现 hashcode 方法。