java中利用List的subList方法实现对List分页(简单易学)
以下是介绍利用List的subList方法实现对List分页,废话不多说了,直接看代码把
/***//** *List分页 *实现:利用List的获取子List方法,实现对List的分页 *@author显武 *@date2010-1-816:27:31 * */ importjava.util.ArrayList; importjava.util.List; publicclassPageModel{ privateintpage=1;//当前页 publicinttotalPages=0;//总页数 privateintpageRecorders;//每页5条数据 privateinttotalRows=0;//总数据数 privateintpageStartRow=0;//每页的起始数 privateintpageEndRow=0;//每页显示数据的终止数 privatebooleanhasNextPage=false;//是否有下一页 privatebooleanhasPreviousPage=false;//是否有前一页 privateListlist; //privateIteratorit; publicPageModel(Listlist,intpageRecorders){ init(list,pageRecorders);//通过对象集,记录总数划分 } /***//** *初始化list,并告之该list每页的记录数 *@paramlist *@parampageRecorders */ publicvoidinit(Listlist,intpageRecorders){ 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; } } //判断要不要分页 publicbooleanisNext(){ returnlist.size()>5; } publicvoidsetHasPreviousPage(booleanhasPreviousPage){ this.hasPreviousPage=hasPreviousPage; } publicStringtoString(inttemp){ Stringstr=Integer.toString(temp); returnstr; } publicvoiddescription(){ Stringdescription="共有数据数:"+this.getTotalRows()+ "共有页数:"+this.getTotalPages()+ "当前页数为:"+this.getPage()+ "是否有前一页:"+this.isHasPreviousPage()+ "是否有下一页:"+this.isHasNextPage()+ "开始行数:"+this.getPageStartRow()+ "终止行数:"+this.getPageEndRow(); System.out.println(description); } publicListgetNextPage(){ page=page+1; disposePage(); System.out.println("用户凋用的是第"+page+"页"); this.description(); returngetObjects(page); } /***//** *处理分页 */ privatevoiddisposePage(){ if(page==0){ page=1; } if((page-1)>0){ hasPreviousPage=true; }else{ hasPreviousPage=false; } if(page>=totalPages){ hasNextPage=false; }else{ hasNextPage=true; } } publicListgetPreviousPage(){ page=page-1; if((page-1)>0){ hasPreviousPage=true; }else{ hasPreviousPage=false; } if(page>=totalPages){ hasNextPage=false; }else{ hasNextPage=true; } this.description(); returngetObjects(page); } /***//** *获取第几页的内容 * *@parampage *@return */ publicListgetObjects(intpage){ 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); } Listobjects=null; if(!list.isEmpty()){ objects=list.subList(pageStartRow,pageEndRow); } //this.description(); returnobjects; } publicListgetFistPage(){ if(this.isNext()){ returnlist.subList(0,pageRecorders); }else{ returnlist; } } publicbooleanisHasNextPage(){ returnhasNextPage; } publicvoidsetHasNextPage(booleanhasNextPage){ this.hasNextPage=hasNextPage; } publicListgetList(){ returnlist; } publicvoidsetList(Listlist){ this.list=list; } publicintgetPage(){ returnpage; } publicvoidsetPage(intpage){ this.page=page; } publicintgetPageEndRow(){ returnpageEndRow; } publicvoidsetPageEndRow(intpageEndRow){ this.pageEndRow=pageEndRow; } publicintgetPageRecorders(){ returnpageRecorders; } publicvoidsetPageRecorders(intpageRecorders){ this.pageRecorders=pageRecorders; } publicintgetPageStartRow(){ returnpageStartRow; } publicvoidsetPageStartRow(intpageStartRow){ this.pageStartRow=pageStartRow; } publicintgetTotalPages(){ returntotalPages; } publicvoidsetTotalPages(inttotalPages){ this.totalPages=totalPages; } publicintgetTotalRows(){ returntotalRows; } publicvoidsetTotalRows(inttotalRows){ this.totalRows=totalRows; } publicbooleanisHasPreviousPage(){ returnhasPreviousPage; } } //测试类: packagecom.Gavin.tools.util; importjava.util.ArrayList; importjava.util.List; publicclassTestPagerModel{ publicstaticvoidmain(Stringargs[]){ List<String>list=newArrayList<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"); PageModelpm=newPageModel(list,5); Listsublist=pm.getObjects(3); for(inti=0;i<sublist.size();i++){ System.out.println(sublist.get(i)); } System.out.println(sublist.get(0)); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。