内存分页工具

   /**
     * 内存分页
     * @param list  待分页的数据
     * @param pageNum  当前页
     * @param pageSize 每页的数量
     * @return PageInfo 分页之后的数据
     */
    public static <T> com.github.pagehelper.PageInfo<T> ramPagination(List<T> list, int pageNum, int pageSize) {

        // 初始化分页集合
        List pageList = Lists.newArrayList();
        int total = 0;
        int pages = 0;
        if (!CollectionUtils.isEmpty(list) && pageNum > 0 && pageSize > 0) {
            total = list.size();
            int remainder = total % pageSize;
            pages = (remainder > 0) ? total/pageSize + 1 : total/pageSize;
            if (remainder == 0) {
                pageList = list.stream().skip((pageNum - 1) * (long)pageSize).limit(pageSize * pageNum).collect(Collectors.toList());
            } else {
                if (pageNum == pages) {
                    pageList = list.stream().skip((pageNum - 1) * (long)pageSize).limit(total).collect(Collectors.toList());
                } else {
                    pageList = list.stream().skip((pageNum - 1) * (long)pageSize).limit(pageSize * pageNum).collect(Collectors.toList());
                }
            }
        }
        // 封装结果集
        com.github.pagehelper.PageInfo pageInfo = new com.github.pagehelper.PageInfo();
        pageInfo.setTotal(total);// 总记录数
        pageInfo.setPageNum(pageNum);// 当前页
        pageInfo.setPageSize(pageSize);// 每页的数量
        pageInfo.setSize(pageList.size());// 当前页的数量
        pageInfo.setPages(pages);// 总页数
        pageInfo.setList(pageList);// 结果集
        return pageInfo;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值