Java设置后端分页

getPages(Integer.parseInt(String.valueOf(page.getCurrent())),Integer.parseInt(String.valueOf(page.getSize())),dtos);

/**

* 对list分页

* @param currentPage

* @param pageSize

* @param list

* @return

*/

private IPage getPages(Integer currentPage, Integer pageSize, List list) {

IPage page = new Page();

if(list == null){

return null;

}

int size = list.size();

if(pageSize > size) {

pageSize = size;

}

if (pageSize!=0){

// 求出最大页数,防止currentPage越界

int maxPage = size % pageSize == 0 ? size / pageSize : size / pageSize + 1;

if(currentPage > maxPage) {

currentPage = maxPage;

}

}

// 当前页第一条数据的下标

int curIdx = currentPage > 1 ? (currentPage - 1) * pageSize : 0;

List pageList = new ArrayList();

// 将当前页的数据放进pageList

for(int i = 0; i < pageSize && curIdx + i < size; i++) {

pageList.add(list.get(curIdx + i));

}

page.setCurrent(currentPage).setSize(pageSize).setTotal(list.size()).setRecords(pageList);

return page;

}

相关推荐
笙年16 分钟前
JavaScript Promise,包括构造函数、对象方法和类方法
开发语言·javascript·ecmascript
WZTTMoon20 分钟前
Spring Boot 启动全解析:4 大关键动作 + 底层逻辑
java·spring boot·后端
章鱼哥73022 分钟前
[特殊字符] SpringBoot 自定义系统健康检测:数据库、Redis、表统计、更新时长、系统性能全链路监控
java·数据库·redis
神仙别闹25 分钟前
基于C++实现(控制台)应用递推法完成经典型算法的应用
开发语言·c++·算法
深圳佛手29 分钟前
Sharding-JDBC 和 Sharding-Proxy 区别
java
kk哥889938 分钟前
inout参数传递机制的底层原理是什么?
java·开发语言
小二·1 小时前
Spring框架入门:深入理解Spring DI的注入方式
java·后端·spring
避避风港1 小时前
转发与重定向
java·servlet
listhi5201 小时前
基于改进SET的时频分析MATLAB实现
开发语言·算法·matlab