欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java重写object的hashCode(),equals()方法示例,hashcodeequals,java重写object

来源: javaer 分享于  点击 10084 次 点评:54

java重写object的hashCode(),equals()方法示例,hashcodeequals,java重写object


java重写object的hashCode(),equals()方法示例

equals()和hashCode()方法解释:

equals() (javadoc) 用来定义判断对象是否和另外一个对象相等,它必须是可逆的,对称的,并且是可传递的.

另外,equals方法也必须是稳定的(在两个对象都没有变化期间,他们之间equals应该返回一致的值)

hashCode() (javadoc) 必须是稳定的,假如对象相等,他们必须返回相同的hashCode

也就是说假定a.equals(b)成立,那么a.hashCode()必须等于b.hashCode();

下面是一个实现equals和hashCode的类示例:

public class Person {    private String name;    private int age;    // ...    public int hashCode() {        return new HashCodeBuilder(17, 31). // two randomly chosen prime numbers            // if deriving: appendSuper(super.hashCode()).            append(name).            append(age).            toHashCode();    }    public boolean equals(Object obj) {        if (obj == null)            return false;        if (obj == this)            return true;        if (obj.getClass() != getClass())            return false;        Person rhs = (Person) obj;        return new EqualsBuilder().            // if deriving: appendSuper(super.equals(obj)).            append(name, rhs.name).            append(age, rhs.age).            isEquals();    }}
相关栏目:

用户点评