JAVA对List进行手动分页
在日常开发中,框架中使用的分页插件有时候不能够对组合List进行有效的分页,所以需要我们进行手动分页。
方法缺点:不适合大量数据使用,list越大,程序响应时间越久,会造成用户体验问题。
下面是优化出来的公共方法,兼容各种类型的List,复制粘贴即可使用。
/**
* @param list 分页前的集合
* @param pageNum 页码
* @param pageSize 页数
* @param <T>
* @return 分页后的集合
*/
public static <T> List<T> pageList(List<T> list, int pageNum, int pageSize) {
//计算总页数
int page = list.size() % pageSize == 0 ? list.size() / pageSize : list.size() / pageSize + 1;
//兼容性分页参数错误
pageNum = pageNum <= 0 ? 1 : pageNum;
pageNum = pageNum >= page ? page : pageNum;
// 开始索引
int begin = 0;
// 结束索引
int end = 0;
if (pageNum != page) {
begin = (pageNum - 1) * pageSize;
end = begin + pageSize;
} else {
begin = (pageNum - 1) * pageSize;
end = list.size();
}
return list.subList(begin, end);
}
作者:YangRoc
出处:https://www.cnblogs.com/YangRoc/p/17186551.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
如果本篇文章有帮助到你,你可以请作者喝杯咖啡表示鼓励 ☕️
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)