PageUtil工具类

/**
 * Created by likun on 2020/7/13.
 */
public class PageUtil {

    public final static Integer DEFAULT_PAGE_SIZE = 200;

    /**
     * 分页获取数据
     *
     * @param data     原始数据
     * @param curPage  当前页
     * @param pageSize 每页数量
     * @return
     */
    public static <T> List<T> getPageData(List<T> data, int curPage, int pageSize) {
        if (data == null || data.size() == 0) {
            return new ArrayList<>();
        } else if (curPage <= 0) {
            throw new RuntimeException("curPage不能小于等于0");
        } else if (pageSize <= 0) {
            throw new RuntimeException("pageSize不能小于等于0");
        }
        if (data.size() <= pageSize) {
            return data;
        }

        //总页数
        int totalPage = getTotalPage(data, pageSize);

        // 1 获取第一页
        if (curPage == 1) {
            return data.subList(0, pageSize);
        }
        // 2 中间页
        else if (curPage < totalPage) {
            return data.subList((curPage - 1) * pageSize, curPage * pageSize);
        }
        // 3 获取最后一页
        else if (curPage == totalPage) {
            return data.subList((curPage - 1) * pageSize, data.size());
        }
        // 4 非法页
        else {
            return new ArrayList<>();
        }
    }

    /**
     * @Description: 获取总页数
     * @Param: null
     * @Return:
     * @Author: likun
     * @Date: 2020/7/13 11:04
     */
    public static <T> int getTotalPage(List<T> data, int pageSize) {
        if (data == null || data.size() == 0) {
            return 0;
        } else if (pageSize <= 0) {
            throw new RuntimeException("pageSize不能小于等于0");
        }
        return data.size() % pageSize == 0 ? data.size() / pageSize : data.size() / pageSize + 1;
    }

    /**
     * @Description: 获取总页数
     * @Param: count
     * @Param: pageSize
     * @Return: int
     * @Author: likun
     * @Date: 2020/11/30 18:01
     */
    public static int getTotalPage(int count, int pageSize) {
        if (count <= 0) {
            throw new RuntimeException("count不能小于等于0");
        }
        if (pageSize <= 0) {
            throw new RuntimeException("pageSize不能小于等于0");
        }
        return count % pageSize == 0 ? count / pageSize : count / pageSize + 1;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值