public class PageUtil {
private PageUtil() {
// 工具类私有构造方法
}
/**
* 内存分页
*
* @param page
* @param pageSize
* @param filterDtoList
* @param <T>
* @return
*/
public static <T> PageResult<T> getPageResult(Integer page, Integer pageSize, List<T> filterDtoList) {
Integer total = filterDtoList.size();
int start = pageSize * (page - 1);
int end = start + pageSize;
if (start > total) {
return new PageResult<>();
}
if (end > total) {
end = total;
}
List<T> subList = filterDtoList.isEmpty() ? filterDtoList : filterDtoList.subList(start, end);
PageResult<T> pageResult = new PageResult<>(page, pageSize, total.longValue());
pageResult.setData(subList);
return pageResult;
}
/**
* 获取真实page,主要当页码超过真实页码后取最后一页
*
* @param totalNum
* @param currentPage
* @param pageSize
* @return
*/
public static int getRealPage(long totalNum, int currentPage, int pageSize) {
if (totalNum < 1) {
return 1;
}
int totalPage = (int) (totalNum + (long) pageSize - 1L) / pageSize;
if (currentPage <= totalPage) {
return currentPage;
}
return totalPage;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix