記錄今天HashSet去重及equals的坑

衆所周知,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

相關文章
相關標籤/搜索