国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

java中利用List的subList方法實現對List分頁(簡單易學)

2019-11-26 13:35:25
字體:
來源:轉載
供稿:網友

以下是介紹利用List的subList方法實現對List分頁,廢話不多說了,直接看代碼把

/** *//**  * List分頁  * 實現:利用List的獲取子List方法,實現對List的分頁  * @author 顯武  * @date 2010-1-8 16:27:31  *  */   import java.util.ArrayList;  import java.util.List;   public class PageModel {    private int page = 1; // 當前頁     public int totalPages = 0; // 總頁數     private int pageRecorders;// 每頁5條數據     private int totalRows = 0; // 總數據數     private int pageStartRow = 0;// 每頁的起始數     private int pageEndRow = 0; // 每頁顯示數據的終止數     private boolean hasNextPage = false; // 是否有下一頁     private boolean hasPreviousPage = false; // 是否有前一頁     private List list;     // private Iterator it;     public PageModel(List list, int pageRecorders) {      init(list, pageRecorders);// 通過對象集,記錄總數劃分    }       /** *//**     * 初始化list,并告之該list每頁的記錄數     * @param list     * @param pageRecorders     */    public void init(List list, int pageRecorders) {      this.pageRecorders = pageRecorders;      this.list = list;      totalRows = list.size();      // it = list.iterator();      hasPreviousPage = false;      if ((totalRows % pageRecorders) == 0) {        totalPages = totalRows / pageRecorders;      } else {        totalPages = totalRows / pageRecorders + 1;      }       if (page >= totalPages) {        hasNextPage = false;      } else {        hasNextPage = true;      }       if (totalRows < pageRecorders) {        this.pageStartRow = 0;        this.pageEndRow = totalRows;      } else {        this.pageStartRow = 0;        this.pageEndRow = pageRecorders;      }    }      // 判斷要不要分頁    public boolean isNext() {      return list.size() > 5;    }     public void setHasPreviousPage(boolean hasPreviousPage) {      this.hasPreviousPage = hasPreviousPage;    }     public String toString(int temp) {      String str = Integer.toString(temp);      return str;    }     public void description() {       String description = "共有數據數:" + this.getTotalRows() +       "共有頁數: " + this.getTotalPages() +       "當前頁數為:" + this.getPage() +       " 是否有前一頁: " + this.isHasPreviousPage() +       " 是否有下一頁:" + this.isHasNextPage() +       " 開始行數:" + this.getPageStartRow() +       " 終止行數:" + this.getPageEndRow();       System.out.println(description);    }     public List getNextPage() {      page = page + 1;       disposePage();       System.out.println("用戶凋用的是第" + page + "頁");      this.description();      return getObjects(page);    }     /** *//**     * 處理分頁     */    private void disposePage() {       if (page == 0) {        page = 1;      }       if ((page - 1) > 0) {        hasPreviousPage = true;      } else {        hasPreviousPage = false;      }       if (page >= totalPages) {        hasNextPage = false;      } else {        hasNextPage = true;      }    }     public List getPreviousPage() {       page = page - 1;       if ((page - 1) > 0) {        hasPreviousPage = true;      } else {        hasPreviousPage = false;      }      if (page >= totalPages) {        hasNextPage = false;      } else {        hasNextPage = true;      }      this.description();      return getObjects(page);    }     /** *//**     * 獲取第幾頁的內容     *     * @param page     * @return     */    public List getObjects(int page) {      if (page == 0)        this.setPage(1);      else        this.setPage(page);      this.disposePage();      if (page * pageRecorders < totalRows) {// 判斷是否為最后一頁        pageEndRow = page * pageRecorders;        pageStartRow = pageEndRow - pageRecorders;      } else {        pageEndRow = totalRows;        pageStartRow = pageRecorders * (totalPages - 1);      }       List objects = null;      if (!list.isEmpty()) {        objects = list.subList(pageStartRow, pageEndRow);      }      //this.description();      return objects;    }     public List getFistPage() {      if (this.isNext()) {        return list.subList(0, pageRecorders);      } else {        return list;      }    }     public boolean isHasNextPage() {      return hasNextPage;    }      public void setHasNextPage(boolean hasNextPage) {      this.hasNextPage = hasNextPage;    }      public List getList() {      return list;    }      public void setList(List list) {      this.list = list;    }      public int getPage() {      return page;    }      public void setPage(int page) {      this.page = page;    }      public int getPageEndRow() {      return pageEndRow;    }      public void setPageEndRow(int pageEndRow) {      this.pageEndRow = pageEndRow;    }      public int getPageRecorders() {      return pageRecorders;    }      public void setPageRecorders(int pageRecorders) {      this.pageRecorders = pageRecorders;    }      public int getPageStartRow() {      return pageStartRow;    }      public void setPageStartRow(int pageStartRow) {      this.pageStartRow = pageStartRow;    }      public int getTotalPages() {      return totalPages;    }      public void setTotalPages(int totalPages) {      this.totalPages = totalPages;    }      public int getTotalRows() {      return totalRows;    }      public void setTotalRows(int totalRows) {      this.totalRows = totalRows;    }      public boolean isHasPreviousPage() {      return hasPreviousPage;    }   }   //測試類:  package com.Gavin.tools.util;   import java.util.ArrayList;  import java.util.List;   public class TestPagerModel {    public static void main(String args[]) {      List<String> list = new ArrayList<String>();      list.add("a");      list.add("b");      list.add("c");      list.add("d");      list.add("e");      list.add("f");      list.add("g");      list.add("h");      list.add("h");      list.add("i");      list.add("j");      list.add("k");      list.add("l");      list.add("m");      PageModel pm = new PageModel(list, 5);           List sublist = pm.getObjects(3);      for(int i = 0; i < sublist.size(); i++) {        System.out.println(sublist.get(i));      }      System.out.println(sublist.get(0));    }   } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 凤翔县| 正定县| 长汀县| 木兰县| 噶尔县| 扬中市| 定西市| 唐山市| 广东省| 钟山县| 沁源县| 池州市| 内乡县| 兴山县| 景德镇市| 石台县| 抚顺市| 屏边| 陇川县| 灵山县| 泸溪县| 永定县| 韶关市| 湟源县| 绥阳县| 伊吾县| 诸暨市| 濮阳市| 类乌齐县| 万荣县| 大余县| 郁南县| 个旧市| 广汉市| 新宁县| 睢宁县| 灌南县| 崇阳县| 甘泉县| 包头市| 肃宁县|