重写了equals()和hashCode()方法这是为了让元素的唯一性,先比较的是hash值(内存地址).当哈希值一样时才会执行equals()方法.如果equals()方法结果是true的话就说明是同一个元素.像hashSet集合要保证元素的唯一就要这么做
public int hashCode()
{
return this.name.hashCode()+this.age*17;
}
public boolean equals(Object obj)
{
if(this==obj)
{
return true;
}
if(!(obj instanceof Student))
{
return false;
}
Student s = (Student) obj;
return this.name.equals(s.name) && this.age == s.age;
}
} |