两个集合取出不同的数据和相同的数据
两个集合取出不同的数据和相同的数据
我这里的业务场景是两个数据表的数据需要做对比(这里用A表和B表),需要以A表的数据为基础表,如果A表和B表的数据没有交叉数据,那就全部取A表数据,如果有交叉数据就要把B表的原始数据保留,同时再找出AB不同的数据封装在一个集合返回给前端
- 代码处理如下:
实体类
@Data
class UserEntity{
private String id;
private String name;
private String age;
}
业务代码
//封装返回给前端的List
List<UserEntity> userEntiytListVOS = new ArrayList<>();
//这里是a表的数据集合
List<UserEntity> a = userMapper.findAll()
//这里是b表的数据集合
List<UserEntity> b = userMapper.findAll()
//遍历A表数据
for (UsereEntiy userA : a) {
UserEntiy result = new UserEntity();
//标记
int tag = 0;
//遍历B表数据
for (UsereEntiy userB : b) {
//如果name和id相等就记录一下,并且直接赋值给result
if (userA.getName().equals(userB.getName()) && userA.getId().equals(userB.getId())) {
BeanUtils.copyProperties(userB, result);
tag++;
}
}
//如果标记为0则数据不同就取userA表中的数据
if (tag == 0) {
BeanUtils.copyProperties(userA, result);
}
//最后返回的voList
userEntiytListVOS.add(result);
}
