package org.springblade.jfpt.parcel.util;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class PageList {
|
/**
|
* 分页
|
*
|
* @param list 集合
|
* @param pageNum 页码
|
* @param pageSize 页码数量
|
* @param <T> 泛型
|
* @return 返回当前页数据
|
*/
|
public static <T> List<T> getListPaging(List<T> list, int pageNum, int pageSize) {
|
if (list == null || list.size() <= 0) {
|
return new ArrayList<>(0);
|
}
|
//开始下标
|
int startIndex = (pageNum - 1) * pageSize;
|
//结束下标 subList()方法不包含结束下标的元素
|
int endIndex = pageNum * pageSize;
|
//list总条数
|
int total = list.size();
|
//总页数
|
int pageCount = 0;
|
//通过取余决定是否给总页数加1
|
int num = total % pageSize;
|
if (num == 0) {
|
pageCount = total / pageSize;
|
} else {
|
pageCount = total / pageSize + 1;
|
}
|
//如果当前页是最后一页的话 要包含集合的最后一条数据,因为sublist方法本身结束的下标是不包含当前元素的
|
if (pageNum == pageCount) {
|
endIndex = total;
|
}
|
return list.subList(startIndex, endIndex);
|
}
|
}
|