是通过两个方法,hashCode和equals来完成。
如果元素的哈希值相同,才会判断equals是否为true,如果哈希值不同,则不会调用equals方法
例如学生类中保证学生唯一的两种方法编写如下:
public int hashCode(){
return name.hashCode()+age*34;
}
public boolean equals(Object obj){
if(!(obj instanceof Student))
return false;
Student s=(Student)obj;
return this.name.equals(s.name) && this.age==s.age;
} |