Java代码
public static <T> List<T> startPage(List<T> list, Integer pageNum, Integer pageSize) {
Objects.requireNonNull(list);
if (list.isEmpty()) {
return Collections.emptyList();
}
// 记录总数
Integer len = list.size();
if (Objects.isNull(pageNum) || pageNum < 1) {
pageNum = 1;
}
if (Objects.isNull(pageSize) || pageSize < 1) {
pageSize = 10;
}
if (pageSize > len) {
pageSize = len;
}
// 页数
Integer pageCount = len % pageSize == 0 ? len / pageSize : len / pageSize + 1;
if (pageNum > pageCount) {
pageNum = pageCount;
}
// 开始索引
int fromIndex = (pageNum - 1) * pageSize;
// 结束索引
int toIndex = fromIndex + pageSize;
ArrayList<T> rj = new ArrayList<>(Math.min(toIndex, len) + 1 - fromIndex);
for (int i = fromIndex, j = Math.min(toIndex, len); i < j; ++i) {
rj.add(list.get(i));
}
return rj;
}
© 版权声明
THE END