[Java] JAVA分页 →→→→→进入此内容的聊天室

来自 , 2019-10-23, 写在 Java, 查看 109 次.
URL http://www.code666.cn/view/4588e674
  1. package jeffli_10;import java.util.ArrayList;import java.util.List;/** 分页类:根据总记录数和分页大小对 {@link List} 进行分页处理 */public class Pagination
  2. {    public static final int DEFAULT_PAGE_SIZE = 10;    
  3.     private int rowCount;    private int currentPage;    private int pageSize;    private int pageCount;    
  4.     private List<?> list;    
  5.     public Pagination(List<?> list)
  6.     {        this(list, DEFAULT_PAGE_SIZE);
  7.     }    
  8.     public Pagination(List<?> list, int pageSize)
  9.     {        this.currentPage    = 1;        this.list            = list;        this.rowCount        = list.size();
  10.         
  11.         setPageSize(pageSize);
  12.     }    
  13.     private void adjustPageCount()
  14.     {
  15.         pageCount = (rowCount + pageSize - 1) / pageSize;
  16.     }    
  17.     /** 获取要分页的 {@link List}  */
  18.     public List<?> getList()
  19.     {        return list;
  20.     }    
  21.     /** 获取的 {@link List} 当前页内容 */
  22.     public List<?> getCurrentList()
  23.     {
  24.         List<?> currentList = null;        
  25.         if(currentPage >= 1 && currentPage <= pageCount)
  26.         {            int index = (currentPage - 1) * pageSize;
  27.             currentList = list.subList(index, (currentPage < pageCount) ? (index + pageSize) : rowCount);
  28.         }        return currentList;
  29.     }    
  30.  
  31.     /** 获取当前页号(从 1 开始) */
  32.     public int getCurrentPage()
  33.     {        return currentPage;
  34.     }    /** 设置当前页号(从 1 开始) */
  35.     public boolean setCurrentPage(int page)
  36.     {        if(page >= 1 && page <= pageCount)
  37.         {
  38.             currentPage = page;            return true;
  39.         }        
  40.         return false;
  41.     }    
  42.     /** 转到下一页 */
  43.     public boolean nextPage()
  44.     {        return setCurrentPage(currentPage + 1);
  45.     }    /** 转到上一页 */
  46.     public boolean prePage()
  47.     {        return setCurrentPage(currentPage - 1);
  48.     }    /** 获取分页大小 */
  49.     public int getPageSize()
  50.     {        return pageSize;
  51.     }    /** 设置分页大小 */
  52.     public void setPageSize(int size)
  53.     {        if(size <= 0)
  54.             size = DEFAULT_PAGE_SIZE;        
  55.         int index = (currentPage - 1) * pageSize;
  56.         
  57.         pageSize = size;                
  58.         if(index > pageSize)
  59.             currentPage = (index + pageSize - 1) / pageSize;        else
  60.             currentPage = 1;
  61.     
  62.         adjustPageCount();
  63.     }    /** 获取总页数 */
  64.     public int getPageCount()
  65.     {        return pageCount;
  66.     }    
  67.     
  68.     public static void main(String[] args)
  69.     {        final int PAGE_SIZE        = 10;        final int LIST_SIZE        = 39;
  70.         
  71.         List<Integer> list = new ArrayList<Integer>();        for(int i = 1; i <= LIST_SIZE; i++)
  72.             list.add(i);
  73.         
  74.         Pagination pg = new Pagination(list, PAGE_SIZE);        
  75.         for(int i = 1; i <= pg.getPageCount(); i++)
  76.         {
  77.                 pg.setCurrentPage(i);
  78.                 System.out.println(pg.getCurrentList());
  79.         }
  80.     }
  81.     
  82. }//源代码片段来自云代码http://yuncode.net
  83.  
  84. [12345678910]
  85. [11121314151617181920]
  86. [21222324252627282930]
  87. [313233343536373839]//源代码片段来自云代码http://yuncode.net
  88.                        
  89.                        

回复 "JAVA分页"

这儿你可以回复上面这条便签

captcha