ラムダはリストの共通部分と相違点を取ります

2つのリストデータを比較します。1つは新しいリストデータで、もう1つはデータベース内のリストデータです。データベース内の
新しいリストデータを保存する必要があります。存在する場合は変更する必要があります。データベースは新しいリストデータにあります。存在しません、削除してください

// 新获取的数据
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