<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java List 分頁應用(一)

    Posted on 2010-01-09 14:35 Gavin.lee 閱讀(5110) 評論(1)  編輯  收藏 所屬分類: java SE & EE
    應用類:
    package com.Gavin.tools.util;

    /**  
     * 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));
        }


    }


    評論

    # re: java List 分頁應用(一)  回復  更多評論   

    2014-10-17 16:27 by ss
    ss
    主站蜘蛛池模板: 亚洲中文字幕无码日韩| 亚洲天堂免费在线| 又粗又大又猛又爽免费视频| 亚洲男人的天堂网站| 在线免费观看污网站| 亚洲国产精品美女久久久久| 免费一级毛片正在播放| 久久午夜夜伦鲁鲁片免费无码影视| 亚洲三级视频在线| 暖暖日本免费在线视频 | 91香焦国产线观看看免费| 亚洲国产夜色在线观看| 日本免费中文字幕在线看| 99久久精品日本一区二区免费| 亚洲自偷自偷在线成人网站传媒| 免费一区二区视频| 一个人看www在线高清免费看| 视频免费1区二区三区| 国产亚洲精品观看91在线| 日本人的色道免费网站| 老妇激情毛片免费| 久久综合图区亚洲综合图区| 一二三四免费观看在线视频中文版 | 一级毛片在线免费看| 亚洲国产日韩视频观看| 中文字幕无码精品亚洲资源网| 一级毛片在线观看免费| 男女作爱在线播放免费网站| 亚洲狠狠婷婷综合久久蜜芽| 国产色在线|亚洲| 亚洲无线观看国产精品| 久久精品女人天堂AV免费观看| 国产精品高清免费网站| 亚洲国产成人99精品激情在线| 亚洲成综合人影院在院播放| 爱情岛论坛网亚洲品质自拍| 国产91免费在线观看| 一级女人18毛片免费| 夜夜嘿视频免费看| 免费看男女下面日出水视频| 最近中文字幕mv免费高清在线 |