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 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