【常用算法】java实现的三种分页算法
已知总记录数(totalCount)和每页显示的数量(pageSize) 求总页数(pageCount)为多少?
算法1
public int getPageCount(int totalCount, int pageSize) {
return (totalCount -1) / pageSize + 1;
}
算法2 最容易理解
public int getPageCount(int totalCount, int pageSize) {
return totalCount % pageSize == 0 ? totalCount / pageSize : (totalCount / pageSize + 1);
}
算法3 大数据时存在溢出的隐患
public int getPageCount(int totalCount, int pageSize) {
return (totalCount + pageSize -1) / pageSize;
}
算法1和算法3可相互转化,本质是同一回事
使用当前页码(currentPage)和每页显示的数量(pageSize)
求 limit 分页通用公式?
SQL示例
SELECT username, age, sex
FROM user_table
LIMIT (curretPage - 1) * pageSize, pageSize