List 轉 Map > 兩種寫法


            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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM