最近在做冷链仓储的项目,盘点模块里业务有个功能需求是线上的库存记录和线下的库存进行盘点对比,如果存在库存数量或者名称不一致,则产生差异 .例如有集合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);
}
}
}