lambda 取list的交集和差集

两个list数据做对比,一个为新增的list数据,一个为数据库中的list数据
新增的list数据数据库中没保存的需要保存,存在的则修改,数据库中的list数据在新的list数据中不存在则删除

// 新获取的数据
List<Answer> answers = new ArrayList<>();
//数据库获取的数据
List<Answer> answersOld = new ArrayList<>();
// 新增的List 
List<Answer> Add = answers.stream()
        .filter(item -> !answersOld.stream()
                .map(e -> e.getAnswerCode())
                .collect(Collectors.toList())
                .contains(item.getAnswerCode()))
        .collect(Collectors.toList());

// 修改的List  
List<Answer> Update =  answers.stream()
        .filter(item -> answersOld.stream()
                .map(e -> e.getAnswerCode())
                .collect(Collectors.toList())
                .contains(item.getAnswerCode()))
        .collect(Collectors.toList());

// 删除的List 取数据库中存在的差集
List<Answer> Delete =  answersOld.stream()
        .filter(item -> !answers.stream()
                .map(e -> e.getAnswerCode())
                .collect(Collectors.toList())
                .contains(item.getAnswerCode()))
        .collect(Collectors.toList());

猜你喜欢

转载自blog.csdn.net/zhongzih/article/details/113120927