java仿google的分页算法
1.现将数据从数据库读取出来封装一个java类中,在java类中计算
public class Page {
//成员变量
//当前页
private int nowpage;
//总记录数
private int countrecord;
//总页数
private int countpage;
// 当前页记录开始的位置
private int pageindex;
// 每页显示的记录数
public static final int PAGESIZE = 5;
// 索引的sum值 代表的是 google页面中最大显示页数
private int sumindex = 6;
// 开始的索引值
private int startindex;
// 结束的索引值
private int endindex;
//当前页信息
private List allentities;
//构造器
public Page() {
}
public Page(int countrecord, int nowpage) {
// 计算当前页
this.nowpage = nowpage;
// 计算出当前页开始的位置
this.pageindex = (nowpage - 1) * PAGESIZE;
// 计算总页数
this.countrecord = countrecord;
if (this.countrecord % this.PAGESIZE == 0) {
this.countpage = this.countrecord / this.PAGESIZE;
} else {
this.countpage = this.countrecord / this.PAGESIZE + 1;
}
//计算开始和结束的索引值
//当当前页小于等于四时开始的索引值等于一,而结束的索引值分两种情况
if (this.nowpage <= 4) {
this.startindex = 1;
if (this.endindex > this.countpage) {
this.endindex = this.countpage;
}
this.endindex = this.nowpage + 2;
}
// 当当前页大于四时开始的索引值和结束的索引值均分三种情况
else if (this.nowpage > 4) {
if (this.endindex > this.countpage&& this.countpage < this.sumindex) {
this.startindex = 1;
this.endindex = this.countpage;
}
else if (this.countpage > this.sumindex) {
this.startindex = this.countpage - 5;
this.endindex = this.countpage;
}
else{
this.startindex = this.nowpage - 3;
this.endindex = this.nowpage + 2;
}
}
}
//省略成员变量的get和set方法
}