1. 程式人生 > 其它 >lambda 取list的交集和差集

lambda 取list的交集和差集

技術標籤:java

兩個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());