判斷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);
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章