大概思路就是:
- 只有一页且显示第一页时,展示所有内容
- 当页数大于总页数时,返回null
- 当显示最后一页时,取余不为0则展示取余后最后几条数据的数据,取余为0,则显示最后一页的数据。
/**
* 手动分页
*/
Integer page = inputDto.getPage();
Integer limit = inputDto.getLimit();
List<LdconApplyMainListDto> result = new ArrayList<>();
int pp = list.size() / limit;
//只有一页且显示第一页时,展示所有内容
if (list.size() <= limit && page.equals(1)) {
for (int i = 0; i < list.size(); i++) {
result.add(list.get(i));
}
} else {
if (list.size() % limit != 0) {
pp++;
}
//当页数大于总页数时,返回null
if (page > pp) {
return null;
}
//显示最后一页
if (page == pp) {
//取余不为0则展示取余后最后几条数据的数据
//取余为0,则显示最后一页的数据。
int tempLimit = list.size() % limit;
if (0 < tempLimit) {
limit = tempLimit;
}
}
//显示数据
for (int i = (page - 1) * limit; i < limit * page; i++) {
result.add(list.get(i));
}
}
return result;