如果一个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);
}

Logo

鸿蒙生态一站式服务平台。

更多推荐