对比两个LIST里不同对象的方法

两个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等方法

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值