好的,下面是一个简单的Java分页工具类实现:

public class PageUtil<T> {

    private List<T> dataList;   // 数据列表
    private int currentPage;    // 当前页码
    private int pageSize;       // 每页数据量
    private int totalCount;     // 总数据量
    private int totalPage;      // 总页数

    /**
     * 构造函数
     *
     * @param dataList    数据列表
     * @param currentPage 当前页码
     * @param pageSize    每页数据量
     */
    public PageUtil(List<T> dataList, int currentPage, int pageSize) {
        this.dataList = dataList;
        this.currentPage = currentPage;
        this.pageSize = pageSize;
        this.totalCount = dataList.size();
        this.totalPage = (int) Math.ceil((double) totalCount / pageSize);
    }

    /**
     * 获取当前页数据
     *
     * @return 当前页数据列表
     */
    public List<T> getCurrentPageData() {
        int startIndex = (currentPage - 1) * pageSize;
        int endIndex = Math.min(startIndex + pageSize, totalCount);
        return dataList.subList(startIndex, endIndex);
    }

    /**
     * 获取总页数
     *
     * @return 总页数
     */
    public int getTotalPage() {
        return totalPage;
    }

    /**
     * 获取当前页码
     *
     * @return 当前页码
     */
    public int getCurrentPage() {
        return currentPage;
    }

    /**
     * 设置当前页码
     *
     * @param currentPage 当前页码
     */
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    /**
     * 获取每页数据量
     *
     * @return 每页数据量
     */
    public int getPageSize() {
        return pageSize;
    }

    /**
     * 设置每页数据量
     *
     * @param pageSize 每页数据量
     */
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    /**
     * 获取总数据量
     *
     * @return 总数据量
     */
    public int getTotalCount() {
        return totalCount;
    }

    /**
     * 设置总数据量
     *
     * @param totalCount 总数据量
     */
    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    /**
     * 获取数据列表
     *
     * @return 数据列表
     */
    public List<T> getDataList() {
        return dataList;
    }

    /**
     * 设置数据列表
     *
     * @param dataList 数据列表
     */
    public void setDataList(List<T> dataList) {
        this.dataList = dataList;
    }
}

使用示例:

// 假设有一个包含10个元素的列表
List<String> dataList = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
    dataList.add("Data " + i);
}

// 每页显示3个元素,当前页码为2
PageUtil<String> pageUtil = new PageUtil<>(dataList, 2, 3);

// 获取当前页的数据
List<String> currentPageData = pageUtil.getCurrentPageData();

// 输出当前页的数据
for (String data : currentPageData) {
    System.out.println(data);
}

// 输出总页数和总数据量
System.out.println("Total page: " + pageUtil.getTotalPage());
System.out.println("Total count: " + pageUtil.getTotalCount());

输出结果:

Data 4
Data 5
Data 6
Total page: 4
Total count: 10

希望能对你有所帮助

帮我用Java实现一个分页的工具类

原文地址: https://www.cveoy.top/t/topic/fn3g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录