最近有個功能需求是這樣的:例如有集合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);
}
}
}