Java实现自制分页插件

在一个项目中分页是必不可少的,我自己编写了一个,在数据量较少的时候自认为还是不错的。如果想要使用,直接复制代码就可以。就算不符合需求,还可以再改。下面的代码,注释很详细。

 

package blog.util;

import java.util.ArrayList;
import java.util.List;

/**
 * 分页,创建对象时传入总列表以及每页最大数,
* 可通过getPaging(int page)或getPaging()方法获取想要的分页,
* 其中 page 为想要的分页页码,默认为1。 * @param 传入的总列表中元素的类型 */ public class Paging { /** * 当前页码 */ private int pageNum = 1; /** * 每页最大条数 */ private final int pageCount; /** * 总条数 */ private final int totalCount; /** * 总页数 */ private int totalPage; /** * 当前页条数 */ private int currentCount; /** * 总列表 */ private final List totalList; /** * 创建 Paging 对象,用于分页 * @param pageCount 每页最大条数 * @param totalList 总列表 */ public Paging(int pageCount, List totalList) { this.pageCount = pageCount; this.totalList = totalList; // 总条数为需要处理的商品列表条数 this.totalCount = totalList.size(); // 设置总页数 this.setTotalPage(); } /** * 设置总页数 */ private void setTotalPage(){ double a = (double) totalCount / (double) pageCount; totalPage = (int) Math.ceil(a); } /** * 获取期待页码的列表,从1开始 * @param pageNum 想要获取的分页页码 * @return 当前分页显示的数据列表 */ public List getPaging(int pageNum){ // 设置当前页码 this.pageNum = pageNum; // 每页最大条数 int pageCount = this.pageCount; // 总列表 List totalList = this.totalList; // 当前页列表 List pageList = new ArrayList<>(); // 想要获取的分页的数据在总列表中开始处的索引值 int start = (pageNum - 1) * pageCount; // 结束处的索引 int end = start + pageCount; if (end > totalList.size()){ // 如果结束处的索引值比总列表的长度大,那么结束处的索引为总列表长度 end = totalList.size(); } for (int i = start; i < end; i++) { // 通过循环将总列表中指定索引区间内的元素添加进新列表 pageList.add(totalList.get(i)); } // 当前页条数 this.currentCount = pageList.size(); return pageList; } /** * 获取当前分页的商品列表 * @return 当前分页显示的数据列表 */ public List getPaging(){ return this.getPaging(this.pageNum); } /** * 获取 总条数 * @return totalCount 总条数 */ public int getTotalCount() { return totalCount; } /** * 获取 总页数 * @return totalPage 总页数 */ public int getTotalPage() { return totalPage; } /** * 获取 当前页条数,
* 未调用 getPaging() 方法前为 0 * @return currentCount 当前页条数 */ public int getCurrentCount() { return currentCount; } /** * 获取 当前页码,默认为1 * @return pageNum 当前页码 */ public int getPageNum() { return pageNum; } /** * 设置当前页码 * @param pageNum 当前页码 */ public void setPageNum(int pageNum) { this.pageNum = pageNum; } }

 

你可能感兴趣的:(Java实现自制分页插件)