一、差集
- 根据单一属性找差集
List<GamePoolOffersAddForm> gamePoolOffers = gamePoolAddForm.getGamePoolOffers();
List<GamePoolOffers> poolOffersList = getGamePoolRuleByGamePoolId(cb, gamePoolId);
List<GamePoolOffers> deleteList = poolOffersList.stream().filter(poolOffers-> !gamePoolOffers.stream()
.map(GamePoolOffersAddForm::getOfferUUID).collect(Collectors.toList())
.contains(poolOffers.getPoolOfferUUID())).collect(Collectors.toList());
- 根据多属性找差集
比如需要两个属性才能比对则
poolOffers.getPoolOfferUUID() + "&" + poolOffers.getId()
以此类推
poolOffers.getPoolOfferUUID() + "&" + poolOffers.getId() + "&" + poolOffers.getStatus()......
二、交集
把过滤条件的取反去掉
List<GamePoolOffersAddForm> gamePoolOffers = gamePoolAddForm.getGamePoolOffers();
List<GamePoolOffers> poolOffersList = getGamePoolRuleByGamePoolId(cb, gamePoolId);
List<GamePoolOffers> deleteList = poolOffersList.stream().filter(poolOffers-> gamePoolOffers.stream()
.map(GamePoolOffersAddForm::getOfferUUID).collect(Collectors.toList())
.contains(poolOffers.getPoolOfferUUID())).collect(Collectors.toList());