/**
* 查找已存在数据,做新增数据计算
*
* @param queryDate 查找出的数据
* @param toDate 需要新增的数据
* @param <T>
* @return 新增/删除数据
* //查找已存在数据AC,
* //1.如果现传的ABCD,包括已有AC的表示不更新AC,新增BD。
* //2.如果传的是BCD,没有A,已有C,表示删除A,新增BD。
* //3.如果传的是BD,没有AC,表示删除AC,新增BD。
*/
public static <T> Map<String, List<T>> updateList(List<T> queryDate, List<T> toDate) {
List<T> deletedIds = new ArrayList<>();
// 遍历 queryDate 列表
for (T item : queryDate) {
if (!toDate.contains(item)) {
// 如果该项不在 toDate 中,则将其添加到删除列表中
deletedIds.add(item);
} else {
// 如果该项在 toDate 中,则移除toDate里item,剩余的toDate就是新增的
toDate.remove(item);
}
}
Map<String, List<T>> map = new HashMap<>();
// 需新增的数据
map.put("ADD", toDate);
// 需删除的数据
map.put("DELETED", deletedIds);
return map;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192733.html