lambda 取list的交集和差集
阿新 • • 發佈:2021-01-26
技術標籤: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());