java 中list去重、stream流排序

44 阅读1分钟

1、代码如下:

List<PassengerListVo> passengerListVo = passengerDao.getPassengerListVo(passengerQueryDto);
if (passengerListVo.size() == 0 || ObjectUtils.isEmpty(passengerListVo)){
   throw new CheckedException("空");
}
List<PeopleNumVo> peopleNumVos = new ArrayList<>();
for (PassengerListVo listVo : passengerListVo) {
   PeopleNumVo peopleNumVo = passengerDao.getPeopleNumVo(listVo.getTicketId(),listVo.getAppointmentTime());
   peopleNumVos.add(peopleNumVo);
   listVo.setPeopleNumVos(peopleNumVos);
}

//peopleNumVos list去重、stream流排序
for (PassengerListVo listVo : passengerListVo) {
   List<PeopleNumVo> voList = listVo.getPeopleNumVos();
   HashSet<PeopleNumVo> hashSet = new HashSet<>(voList);
   listVo.setPeopleNumVos(hashSet.stream().sorted(Comparator.comparing(peopleNumVo -> { return peopleNumVo.getOnboardTime(); })).collect(Collectors.toList()));
}
List<PassengerListVo> returnList = new ArrayList<>();
returnList.add(passengerListVo.get(0));
return returnList;