判断2个List集合对象的值是否存在,并取出相同和不同的数据

最近在做冷链仓储的项目,盘点模块里业务有个功能需求是线上的库存记录和线下的库存进行盘点对比,如果存在库存数量或者名称不一致,则产生差异 .例如有集合A和集合B,2个学生List对象,拥有年龄,性别,名字,身份证这几个属性。现在我需要以A集合的数据为基准,看集合B里面有哪些数据我A里面存在,哪些不存在,然后分别做不同的处理,判断是否存在的条件是身份证号一致。

代码如下:

@Data
class Student{
    private Integer age;
    private String name;
    private Integer sex;
    private String code;
}
List<Student>existList=new ArrayList<>();//存放存在相同的数据
List<Student>notExistList=new ArrayList<>();//存放不相同的数据

List<Student> listA=new ArrayList<>();//集合A
List<Student> listB=new ArrayList<>();//集合B

//为了做演示,假设上面ListA和ListB都存在数据,这里我就不做添加数据的操作了

if(!listA.isEmpty && !listB.isEmpty){
    for(Student a:listA){
        int mark=0;
        for(Student b:listB){
            if(a.getCode().equals(b.getCode())){
                mark++;
            }
        }
        //先在A中去查B里面全部数据,如果匹配了就做标记,然后存放在存在的集合里,否则放另一个集合里
        if(mark==0){
            notExistList.add(a);
        }else{
            existList.add(a);
        }
    }
}

 

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值