java根据类的一个属性对List去重
public Page<UserActivityRegVO> regRecord(RecordQueryParam recordQueryParam, PaobaPage paobaPage) {
if(recordQueryParam.getCardId() == null && recordQueryParam.getOpenId() == null){
throw new PbServiceException("请登录小程序后查询个人报名记录!");
}else {
Page<UserActivityRegVO> map = playerRepository.regPage(recordQueryParam, paobaPage).map(
tuple2 -> {
tuple2._1();
ActivityVO activityVO = activityAssembler.E2V(tuple2._2());
UserActivityRegVO activityRegVO = new UserActivityRegVO();
BeanUtil.copyProperties(activityVO, activityRegVO);
activityRegVO.setUserRegTime(tuple2._1().getCreateTime());
return activityRegVO;
}
);
List<UserActivityRegVO> content = map.getContent();
List<UserActivityRegVO> res = content.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(UserActivityRegVO::getActId))), ArrayList::new
));
return new PageImpl<>(res,PageRequest.of(paobaPage.getPn(), paobaPage.getPs()),map.getTotalElements());
}
}
使用流操作去重:
content.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(UserActivityRegVO::getActId))), ArrayList::new
));
记录一下。