<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
    主站蜘蛛池模板: 成人免费乱码大片A毛片| 亚洲av专区无码观看精品天堂| 亚洲香蕉免费有线视频| 日韩大片免费观看视频播放| 亚洲av成人综合网| 亚洲丝袜美腿视频| 亚洲夜夜欢A∨一区二区三区| 国产区卡一卡二卡三乱码免费| 日本高清在线免费| 久久青草免费91线频观看不卡 | 色窝窝亚洲av网| 精品亚洲国产成人| 亚洲综合网美国十次| 在线观看亚洲天天一三视| www.亚洲精品| 四虎永久免费地址在线观看| 成人毛片免费观看| 五月婷婷综合免费| 最近免费中文在线视频| 日韩免费无码一区二区三区| 嫩草在线视频www免费看| 久久一区二区免费播放| 欧亚一级毛片免费看| 特级aaaaaaaaa毛片免费视频| 精品亚洲视频在线| 亚洲GV天堂GV无码男同| 久久亚洲欧美国产精品| 亚洲av无码专区亚洲av不卡| 亚洲欧洲精品成人久久曰| 亚洲一卡一卡二新区无人区| 亚洲色丰满少妇高潮18p| 亚洲一卡一卡二新区无人区| 亚洲熟妇av午夜无码不卡| 亚洲砖码砖专无区2023| 亚洲色大成网站www永久网站| 亚洲午夜无码久久| 久久久久久亚洲av无码蜜芽| 国产AV日韩A∨亚洲AV电影| jzzijzzij在线观看亚洲熟妇| 国产精品亚洲天堂| 亚洲高清免费视频|