List<TeamScheduleDTO> list = JSON.parseArray(response.getData().getJSONArray("list").toJSONString(), TeamScheduleDTO.class);
// guava寫法
/* Map<String, List<TeamScheduleDTO>> allMap = Multimaps.asMap(Multimaps.index(list1,
new Function<TeamScheduleDTO, String>() {
@Override
public String apply(TeamScheduleDTO input) {
String dateStr = DateFormatUtils.format(input.getMatchDateTime(), "yyyy-MM-dd");
return dateStr;
}
}));*/
// jdk8寫法
Map<String, List<TeamScheduleDTO>> allMap = list1.stream().collect(Collectors.groupingBy(input -> DateFormatUtils.format(input.getMatchDateTime(), "yyyy-MM-dd")));
List<String> dateList = new ArrayList<>();
for (Map.Entry<String, List<TeamScheduleDTO>> entry : allMap.entrySet()) {
dateList.add(entry.getKey());
}
dateList.sort((o1, o2) ->
DateUtils.toDate(o1).compareTo(DateUtils.toDate(o2)));
List<TeamScheduleReturnDTO> returnDTOList = new ArrayList<>();
for (String str : dateList) {
TeamScheduleReturnDTO dto = new TeamScheduleReturnDTO();
dto.setShowDate(str);
dto.setRelScheduleList(allMap.get(str));
returnDTOList.add(dto);
}
return returnDTOList;