衆所周知,HashSet能夠去重,可是在實際運用中,可謂踩坑連連。web
1. HahsSet數據,做爲對象的字段,重寫equals以後:ide
@Override public boolean equals(Object obj){ if(!(obj instanceof PushMsgRule)) { return false; } PushMsgRule b = (PushMsgRule)obj; if(this.getId().equals(b.getId())) {//這裏用 == 不能斷定「123faiwebgwergbuiwe3123r2」 == 「123faiwebgwergbuiwe3123r2」 爲true return true; } return false; }
this.getId().equals(b.getId())也要用equalsui
2. 附正常對象的equals 和hashcode方法this
@Override
public boolean equals(Object obj){
if(!(obj instanceof PushMsgRule)) {
return false;
}
PushMsgRule b = (PushMsgRule)obj;
if(this.getId().equals(b.getId())) {
return true;
}
return false;
}
@Override
public int hashCode() {
return this.id.hashCode();
}spa