Java集合 List分页
发现很多list分页都会或多或少出现一些问题,比如缺少校验
List.size=6,pageNum=3,pageSize=3;
List.size=6,pageNum=2,pageSize=4;
等等,而且有的会判断的较为复杂难以理解,不直观等,实现记录。
/**
* List分页
*
* @param data List对象
* @param pageNum 当前页数
* @param pageSize 页面大小
* @return java.util.List
*/
public static List getPageList(List data, int pageNum, int pageSize) {
if (data == null || data.isEmpty()) {
return Collections.emptyList();
}
// 上一页数据
int fromIndex = (pageNum - 1) * pageSize;
// 上分页数据大于总数据,当前页肯定为空
if (fromIndex >= data.size()) {
return Collections.emptyList();
}
// 上页数据为负数排除页数小于0的情况
if (fromIndex < 0) {
return Collections.emptyList();
}
// 分页请求总数
int toIndex = pageNum * pageSize;
// 分页请求总数大于实际总数取实际总数
if (toIndex >= data.size()) {
toIndex = data.size();
}
return data.subList(fromIndex, toIndex);
}