两个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());