Java 自定义工具类实现List分页
Java 自定义工具类实现List分页
业务接口
/**
* 订购实例查询接口
*
* @param input
* @return
*/
@ApiOperation(value = "订购实例查询接口", notes = "入参:userId、pageSize(分页数据条数)、pageNum(当前页码)")
Map queryOrderInstance(Map input);
调用工具类方法(相关参数的非空校验这里不再贴出):
List returnList = PageUtils.startPage(userList, pageNum, pageSize);
userMap.put("userInfos", returnList);
//返回总记录数
userMap.put("total", userList.size());
result.put("body", userMap);
return result;
工具类:
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 自定义List分页工具类
* @author zhangjie
* @date 2020-09-15
*/
public class PageUtils {
/**
* 开始分页
* @param objectList 分页对象
* @param pageNum 页码
* @param pageSize 每页数据条数
* @return
*/
public static List startPage(List objectList, Integer pageNum, Integer pageSize) {
if (ArrayUtils.isEmpty(objectList)) {
return new ArrayList();
}
//防止起始索引为负数,程序抛出IndexOutOfBoundsException
if (pageNum <= 0){
pageNum = 1;
}
// 总记录数
Integer totalCount = objectList.size();
// 开始索引
int fromIndex = (pageNum - 1) * pageSize;;
// 结束索引
int endIndex = 0;
//分页起始索引fromIndex不能大于结果集总记录数
if(totalCount >= fromIndex) {
endIndex = fromIndex + pageSize;
//最后一条记录的索引大于总记录数
if (endIndex > totalCount) {
//结束索引为集合的最后一个元素索引
endIndex = totalCount;
}
} else {
return new ArrayList();
}
List pageList = objectList.subList(fromIndex, endIndex);
return pageList;
}
}
最终在Swagger UI测试的返回结果 ↓↓
Java 自定义工具类实现List分页相关教程