两个LIST里不同对象无法使用containsAll及重写equals等方法,我的业务逻辑是一个实体类数据保存在历史数据里
首先两个实体类
public class NewStudent {
private int id;
private String name;
private String email;
get/set方法.....
}
public class OldStudent {
private int id;
private String name;
private String email;
get/set方法.....
}
然后是处理方法
List<NewStudent> newList = new ArrayList<>();
List<OldStudent> oleList = new ArrayList<>();
Map<String,Object> map = new HashMap<>();
if (newList != null && oleList != null) {
for(NewStudent newStudent : newList){
map.put(newStudent.getId(),newStudent);
}
NewStudent stu = null;
for(OldStudent oldStudent : oleList){
stu = map.get( oldStudent.getId());
//存储具体错误数值,拓展为存储具体修改数据提交前段显示
if(stu != null){
if(!stu.getId().equals(oldStudent.getId())){
return Result.success(...);
}
if(!stu.getName().equals(oldStudent.getName())){
return Result.success(...);
}
}else {
//这里也可以存储删除数据,拓展为提交前段显示
return Result.success(.....);
}
}
}
如果一个实体是比另外一个实体大 也可以办法封装实体再使用重写equals等方法