List<DTO>转 Map<String,List<DTO>> 两种写法

            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;

猜你喜欢

转载自www.cnblogs.com/feibazhf/p/10219880.html
dto
今日推荐