实用工具类No.1 分页小工具
public class BeanPage {
private int nowPage = 1;//当前页数,初值为1
private int countPage;//单页的数据容量
private ArrayList list;//数据集合
private ArrayList pageList;//分页数据集合
public BeanPage() {
}
public BeanPage(int countPage, ArrayList list) {
this.countPage = countPage;
this.list = list;
/*此处确定了新的countPage,所有直接执行分页*/
setPageList();
}
public int getNowPage() {
return nowPage;
}
public void setNowPage(int nowPage) {
this.nowPage = nowPage;
}
public int getCountPage() {
return countPage;
}
public void setCountPage(int countPage) {
this.countPage = countPage;
/*此处一旦set新的countPage一定要重新分页,不然会按照之前的分页数据分页*/
setPageList();
}
public ArrayList getList() {
return list;
}
public void setList(ArrayList list) {
this.list = list;
}
public ArrayList getPageList() {
return pageList;
}
public void setPageList(ArrayList pageList) {
this.pageList = pageList;
}
//取得数据集合的size
public int getListSize(){
return list.size();
}
//最大页数
public int getMaxPage(){
/*如果数据没有多余,那么最大页数即为数据size/每页数据容量,如果有多余,则要再前面的基础上加一*/
return getListSize()%countPage==0?getListSize()/countPage:getListSize()/countPage+1;
}
public void setPageList(){
pageList = new ArrayList();
/**
* 分页整理
* 起始数据下标 结束数据下标
* 第i页 (nowPage-1)*countPage nowPage*countPage-1
*
* */
int maxIndex = getListSize()-1>nowPage*countPage-1?nowPage*countPage-1:getListSize();
for (int i = (nowPage-1)*countPage; i < maxIndex; i++) {
/*将对应数据一个一个加入分页集合*/
pageList.add(list.get(i));
}
}
public void lastPage(){
if (nowPage>1){
nowPage--;
setPageList();
}else{
System.out.println("已经是第一页了");
}
}
public void nextPage(){
if (nowPage<getMaxPage()){
nowPage++;
setPageList();
}else{
System.out.println("已经是最后一页了");
}
}
}
对分页工具测试
public class TestBeanPage {
public static void main(String[] args) {
ArrayList list = new ArrayList();
for (int i = 0; i < 30; i++) {
list.add(i);
}
BeanPage beanPage = new BeanPage(8, list);
System.out.println("当前页数:"+beanPage.getNowPage());
System.out.println(beanPage.getPageList());
beanPage.nextPage();
System.out.println("当前页数:"+beanPage.getNowPage());
System.out.println(beanPage.getPageList());
beanPage.nextPage();
System.out.println("当前页数:"+beanPage.getNowPage());
System.out.println(beanPage.getPageList());
beanPage.nextPage();
System.out.println("当前页数:"+beanPage.getNowPage());
System.out.println(beanPage.getPageList());
beanPage.nextPage();
System.out.println("当前页数:"+beanPage.getNowPage());
System.out.println(beanPage.getPageList());
beanPage.lastPage();
System.out.println("当前页数:"+beanPage.getNowPage());
System.out.println(beanPage.getPageList());
beanPage.lastPage();
}
}
结果为
当前页数:1
[0, 1, 2, 3, 4, 5, 6]
当前页数:2
[8, 9, 10, 11, 12, 13, 14]
当前页数:3
[16, 17, 18, 19, 20, 21, 22]
当前页数:4
[24, 25, 26, 27, 28, 29]
已经是最后一页了
当前页数:4
[24, 25, 26, 27, 28, 29]
当前页数:3
[16, 17, 18, 19, 20, 21, 22]