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));
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志