list.contains()方法判断是否包含自定义对象_鹏神丶明月天的博客-爱代码爱编程
如果一个list中存入了许多user对象,如何使用contains方法判断该list是否包含某个对象呢?
首先list.contains()方法判断是否包含,需要在user中复写equals()方法
复写方法时需要确认如何认定user
比如俩个user的name属性相同,不管age和birthday是否相同,都认为这两个user是同一个user,那么我们在复写equals()方法时,只需要复写name字段的equals()方法
如果name和age俩个字段才能确定俩个user是否相同,那么就需要复写name和age这两个字段的equals()方法;
例如:
public class JudgeNameDTO {
/**维度编号**/
private String extentCode;
/**章节名称,或章节编号**/
private String chapterCodeName;
public JudgeNameDTO(String extentCode, String chapterCodeName) {
this.extentCode = extentCode;
this.chapterCodeName = chapterCodeName;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
JudgeNameDTO that = (JudgeNameDTO) o;
return Objects.equals(extentCode, that.extentCode) && Objects.equals(chapterCodeName, that.chapterCodeName);
}
}
重写了extentCode和chapterCodeName
判断:
//检查数据是否符合规范
List<JudgeNameDTO> judgeNameDTOSCode = new ArrayList<>();
JudgeNameDTO judgeNameDTO = new JudgeNameDTO(ghaKbTitleExportDTO.getTitleCode(), ghaKbTitleExportDTO.getChapterTitle());
if (judgeNameDTOSCode.contains(judgeNameDTO)){
errorMsg.add(excelTitle + "表第" + (i+2) + "行”章节标题“内容重复!");
}else {
judgeNameDTOSCode.add(judgeNameDTO);
}