用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

JAVA分页

2015-04-12 作者: 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 < pageCount) ? (index + pageSize) : rowCount);
        }        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<Integer> list = new ArrayList<Integer>();        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
			
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...