Java手工对List进行分页
import cn.hutool.core.collection.CollUtil;
import java.util.Collections;
import java.util.List;
/**
* 自定义List分页工具
*
*/
public class PageUtil {
/**
* 开始分页
*
* @param list
* @param pageNo 页码
* @param pageSize 每页多少条数据
* @return
*/
public static <T> List<T> startPage(List<T> list, int pageNo, int pageSize) {
AssertUtil.isTrue(pageNo > 0, "pageNo非正整数");
AssertUtil.isTrue(pageSize > 0, "pageSize非正整数");
if (CollUtil.isEmpty(list)) {
return Collections.EMPTY_LIST;
}
int totalCount = list.size();
int fromIndex;
int toIndex;
if (totalCount <= ((pageNo - 1) * pageSize)) { // 当前页没有数据
return Collections.EMPTY_LIST;
} else if (totalCount > (pageNo * pageSize)) { // 中间页
fromIndex = (pageNo - 1) * pageSize;
toIndex = pageNo * pageSize;
} else { // 最后一页
fromIndex = (pageNo - 1) * pageSize;
toIndex = totalCount;
}
return list.subList(fromIndex, toIndex);
}
}