使用stream流按時間段進行分組


public Map<String, Object> blogClassify(Integer pageNo, Integer pageSize) {
        // 1.創建分頁page對象
        Page<Blog> blogPage = new Page<>(pageNo, pageSize);
        // 2.創建wrapper,並組裝條件
        LambdaQueryWrapper<Blog> wrapper = new QueryWrapper<Blog>().lambda();
        wrapper.eq(Blog::getStatus, 1)
                .eq(Blog::getIsDelete, 0);
        // 3.分頁查詢
        Page<Blog> page = baseMapper.selectPage(blogPage, wrapper);
        List<Blog> records = page.getRecords();
        // 4.通過stream流根據時間段進行分組
        **Map<String, List<Blog>> collect = records.stream().collect(Collectors.groupingBy(item -> new SimpleDateFormat("yyyy-MM-dd").format(new Date(item.getCreateTime().toString()))));**
        // 5.遍歷分組后的數據
        Iterator<Map.Entry<String, List<Blog>>> iterator = collect.entrySet().iterator();
        // 6.創建博客分類對象的集合
        Map<String, Object> map = new HashMap<>();
        ArrayList<BlogInfo> blogInfos = new ArrayList<>();
        // 7.遍歷
        while (iterator.hasNext()) {
            Map.Entry<String, List<Blog>> entry = iterator.next();
            String year = entry.getKey();
            List<Blog> blogList = entry.getValue();
            // 8.設置相關的值
            BlogInfo blogInfo = new BlogInfo(new ArrayList<>());
            blogInfo.setYear(year);
            blogInfo.setBlogList(blogList);
            // 9.博客分類對象添加至博客分類列表中
            blogInfos.add(blogInfo);
        }
        map.put("blogInfos",blogInfos);
        map.put("page", page);
        return map;
    }


免責聲明!

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



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