场景:今天遇到一个问题,需要使用集合存对象,介于set有自动去重的功能,我便使用set存取对象,但是我发现对象中还是存在对象值重复的现象,于是我使用以下方法解决。
原理:重写equals,hashCode方法
注意:使用对象中的单一标识字段 来重写方法
import lombok.Data;
import java.util.List;
/**
* @Description:
* @Author:ay
* @Date:2020/9/30
*/
@Data
public class BdcHomeDo {
private String id;
private String bldl;
private String icon;
private String title;
private String link;
private Integer customerType; //1个人2企业 其它都存在
private Integer SX;
private String djdlbm;
private String yhlx;
private List<BdcHomeItems> items;
//注意:使用对象中的单一标识字段 来重写方法
@Override
public boolean equals(Object arg0) {
// TODO Auto-generated method stub
BdcHomeDo p = (BdcHomeDo) arg0;
return bldl.equals(p.bldl) && icon.equals(p.icon) && yhlx.equals(p.yhlx) ;
}
//注意:使用对象中的单一标识字段 来重写方法
@Override
public int hashCode() {
// TODO Auto-generated method stub
String str = bldl + icon + yhlx;
return str.hashCode();
}
}
然后在使用set存取对象时就会实现自动去重