import java.io.Serializable;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class PageList<T> implements Iterable<T>, Serializable
{
/**
* serialVersionUID
*/
private static final long serialVersionUID = -2290332419805109418L;
/**
* 当前页码
*/
private final int pageNo;
/**
* 每页显示条目
*/
private final int pageSize;
/**
* 总记录
*/
private int totalCount;
/**
* 记录列表
*/
private List<T> list = Collections.emptyList();
/**
* 唯一的构造函数
*
* @param pageIndex
* :页数序号,从0开始
* @param pageSize
* :页数大小
*/
public PageList(int pageNo, int pageSize)
{
this.pageNo = pageNo;
this.pageSize = pageSize;
}
/**
* 本页第一条记录在数据库中的序号
*
* @return
*/
public int firstIndex()
{
return pageSize * pageNo;
}
/**
* 获取总页数
*
* @return
*/
public int pageCount()
{
return totalCount / pageSize + (totalCount % pageSize == 0 ? 0 : 1);
}
/**
* 是否存在数据
*
* @return
*/
public boolean hasData()
{
return totalCount > (pageNo - 1) * pageSize;
}
/**
* 是否有下一页数据
*
* @return
*/
public boolean hasNext()
{
return pageNo() <= pageCount() - 1;
}
public int pageNo()
{
return pageNo;
}
public int pageSize()
{
return pageSize;
}
public int size()
{
return list.size();
}
public void setResult(List<T> list)
{
this.list = list;
}
public Iterator<T> iterator()
{
return list.iterator();
}
public int getTotalCount()
{
return totalCount;
}
public void setTotalCount(int totalCount)
{
this.totalCount = totalCount;
}
public List<T> getList()
{
return list;
}
}