手写一个分页工具

@Data
public class DataPaging<T> {

    /*当前页码*/
    private Integer pageNum;

    /*每页显示条数*/
    private Integer pageSize;

    /*总页数*/
    private Integer totalPage;

    /*总条数*/
    private Long total;

    /*分页数据*/
    private List<T> list;

    /**
     * 帮助分页
     * @param list
     * @param <T>
     * @return
     */
    public static <T> DataPaging<T> restPage(List<T> list,Integer pageNum,Integer pageSize){
        DataPaging<T> result = new DataPaging<T>();
        List<T> dataList = new ArrayList();
        // 总页数
        double d = ((double) list.size() / pageSize);
        int total = (int) Math.ceil(d);
        result.setTotalPage(total);
        // 当前页码
        result.setPageNum(pageNum);
        // 每页显示条数
        result.setPageSize(pageSize);
        // 总条数
        result.setTotal((long) list.size());
        // 分页数据
        if(pageSize >= list.size()){
            result.setList(list);
        }else {
            int index = (pageNum - 1) * pageSize;
            if(total == pageNum){
                // 最后一页
                pageSize = list.size() - index;
            }
            for (int i = 0; i < pageSize; i++) {
                dataList.add(list.get(index+i));
            }
            result.setList(dataList);
        }
        return result;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值