List<String> userIds= productSecInfos.stream().map(User::getId).collect(Collectors.toList());//查出原有的关系 List<String> userIdList = new ArrayList<>(map.keySet());//前端传过来的集合 List<String> userIdRemove = new ArrayList<>(); //要删除的的集合 List<String> userIdAdd = new ArrayList<>();//要新增的集合 List<String> userIdInt = new ArrayList<>();//存储不操作的集合 userIdInt.addAll(userIdList); userIdAdd.addAll(userIds); userIdRemove.addAll(userIds); userIdRemove.removeAll(userIdList); userIdAdd.retainAll(userIdList); userIdInt.removeAll(userIdAdd); userIdAdd.clear(); userIdAdd.addAll(userIdInt);
//这里就开始执行集合的增删了,简单的写个例子 具体实现根据具体框架而定
for (String userId : userIdAdd) { insert(userId ); }
for (String userId : userIdRemove) {
delete(userId );
}