java .equals() hashcode

来源:互联网 发布:微商管理系统源码 编辑:程序博客网 时间:2024/06/15 06:33

equals

如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果,注:这里说的equals(Object) 方法是指Object类中未被子类重写过的equals方法。
如果两个hashCode()返回的结果相等,则两个对象的equals方法不一定相等。
两个对象值相同(x.equals(y) == true),则一定有相同的hash code。    Hash,一般翻译做“散列”,也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。1) 对象相等则hashCode一定相等;2) hashCode相等对象未必相等。

0 0
原创粉丝点击