java代写/算法代写:java进行分页class设计

java代写/算法代写:这是一个典型的java软件设计作业,主要通过java进行分页class设计
paginator(分页访问)、page(单页内容访问)功能

1、创建列表:makeList;

2、填充列表内容:lst.append();

3、获取列表的分页对象:p=lst.paginate(n);(p就是Paginator对象,比如整个列表100条记录、分页对象就是把列表按每n个记录为一页,这样分为x页,x=100/n按上限取整)

4、对分页对象,可获得每页的对象:p1=p.next();(p1就是Page对象)

5、对每页的对象,可按顺序获得这页里的n条记录:record=p1.next();(record就是其中一条记录)

先不管具体针对哪个List,只说实现分页的思路(不止一种思路,这里先写一种):

1、Paginator类,至少包括的变量:每页记录数perPage(就是lst.paginate(n)里传入的n)、总页数totalPages、当前页码currPage;

1.1、totalPages就是根据总记录数和perPage计算得出,比如:记录总数一共是10条,n=3,说明一共有10条记录、每页3条,那么页数totalPages就是4;

1.2、currPage就是记录当前页码的变量,初始为0,每次调用next()时自增1,调用previous()时自减1;注意:按我的方法,这个变量有效值从1开始(也可以把它变成从0开始的,前后都调整一下);

1.3、hasNext()方法,要根据currPage和totalPages判断是否有下一页,比如:如果currPage小于totalPages,则说明还有下一页,返回true,否则返回false;

1.4、next()方法,首先currPage++,然后返回一个Page对象(下面会写),注意如果不满足时应该抛出异常;

1.5、hasPrevious()方法,根据currPage判断是否还有前一页,比如:如果currPage>1,则返回true,否则返回false;

1.6、previous()方法,跟next函数相反;

1.7、nextIndex()方法,返回currPage;

1.8、previousIndex()方法,返回currPage-1;

2、Page类,至少包括的变量:本页的记录起始编号start、本页的记录末尾编号end、当前记录编号curr;

2.1、初始化时,Paginator应该传入的start、end,即:Paginator创建一个Page时,需要指定这个Page是从第几条记录开始(start)、共含几条记录(也就是end=start+n);curr变量初始化可以是start;

2.2、初始化时还应该判断,end如果已经超过了整个List的最后一条记录,则应该改为最后一条记录编号;比如,整个列表一共10条记录(编号分别时0~9)、每页3条,在初始化最后一个Page时,start从9开始,end=9+3=12,此时end已经大于列表最后一个编号9了,所以end应该改为9,也就是说,这个Page里start=9、end也等于9;

2.3、hasNext()方法,如果curr>end了,则返回false,否则返回true;

2.4、next()方法,返回curr编号对应的记录,并将curr++;

发表评论

电子邮件地址不会被公开。 必填项已用*标注