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);
}