<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
    主站蜘蛛池模板: 亚洲av午夜成人片精品电影| 中文字幕精品无码亚洲字| 久久精品国产亚洲AV大全| 男女一进一出抽搐免费视频| 亚洲人午夜射精精品日韩| 男女男精品网站免费观看| 亚洲国产精品人人做人人爽| 青青久久精品国产免费看| 国产亚洲精品拍拍拍拍拍| 中文字幕久无码免费久久| 亚洲成A∨人片在线观看不卡| 免费视频精品一区二区三区| 久久99亚洲网美利坚合众国| 国产男女爽爽爽爽爽免费视频| 激情综合亚洲色婷婷五月| 成人超污免费网站在线看| 亚洲精品成a人在线观看夫| 国产精品无码一区二区三区免费| 免费VA在线观看无码| 国产亚洲精aa成人网站| 免费观看久久精彩视频| 亚洲国产成人九九综合| 国产在线观看免费不卡| 国产日韩久久免费影院| 亚洲国产日韩一区高清在线| 亚色九九九全国免费视频| 一级毛片高清免费播放| 国产黄色免费观看| 亚洲美女又黄又爽在线观看| 久久精品视频免费| 国产午夜亚洲精品| 亚洲国产一成久久精品国产成人综合 | 成年美女黄网站色大免费视频| 日本亚洲欧美色视频在线播放 | 91嫩草免费国产永久入口| 亚洲AV无码AV吞精久久| 久久99国产亚洲高清观看首页| 国产成人精品免费视频大| 色欲aⅴ亚洲情无码AV| 久久噜噜噜久久亚洲va久| 大学生美女毛片免费视频|