java分页代码解释_JAVA分页

[java]代码库package jeffli_10;import java.util.ArrayList;import java.util.List;/** 分页类:根据总记录数和分页大小对 {@link List} 进行分页处理 */public class Pagination

{    public static final int DEFAULT_PAGE_SIZE = 10;

private int rowCount;    private int currentPage;    private int pageSize;    private int pageCount;

private List> list;

public Pagination(List> list)

{        this(list, DEFAULT_PAGE_SIZE);

}

public Pagination(List> list, int pageSize)

{        this.currentPage    = 1;        this.list            = list;        this.rowCount        = list.size();

setPageSize(pageSize);

}

private void adjustPageCount()

{

pageCount = (rowCount + pageSize - 1) / pageSize;

}

/** 获取要分页的 {@link List}  */

public List> getList()

{        return list;

}

/** 获取的 {@link List} 当前页内容 */

public List> getCurrentList()

{

List> currentList = null;

if(currentPage >= 1 && currentPage <= pageCount)

{            int index = (currentPage - 1) * pageSize;

currentList = list.subList(index, (currentPage 

}        return currentList;

}

/** 获取当前页号(从 1 开始) */

public int getCurrentPage()

{        return currentPage;

}    /** 设置当前页号(从 1 开始) */

public boolean setCurrentPage(int page)

{        if(page >= 1 && page <= pageCount)

{

currentPage = page;            return true;

}

return false;

}

/** 转到下一页 */

public boolean nextPage()

{        return setCurrentPage(currentPage + 1);

}    /** 转到上一页 */

public boolean prePage()

{        return setCurrentPage(currentPage - 1);

}    /** 获取分页大小 */

public int getPageSize()

{        return pageSize;

}    /** 设置分页大小 */

public void setPageSize(int size)

{        if(size <= 0)

size = DEFAULT_PAGE_SIZE;

int index = (currentPage - 1) * pageSize;

pageSize = size;

if(index > pageSize)

currentPage = (index + pageSize - 1) / pageSize;        else

currentPage = 1;

adjustPageCount();

}    /** 获取总页数 */

public int getPageCount()

{        return pageCount;

}

public static void main(String[] args)

{        final int PAGE_SIZE        = 10;        final int LIST_SIZE        = 39;

List list = new ArrayList();        for(int i = 1; i <= LIST_SIZE; i++)

list.add(i);

Pagination pg = new Pagination(list, PAGE_SIZE);

for(int i = 1; i <= pg.getPageCount(); i++)

{

pg.setCurrentPage(i);

System.out.println(pg.getCurrentList());

}

}

}//源代码片段来自云代码http://yuncode.net

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

[21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

[31, 32, 33, 34, 35, 36, 37, 38, 39]//源代码片段来自云代码http://yuncode.net

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值