两个集合取出不同的数据和相同的数据
两个集合取出不同的数据和相同的数据
我这里的业务场景是两个数据表的数据需要做对比(这里用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); }