如何对一个list集合实现手动分页
时间: 2024-02-11 14:09:56 浏览: 64
对一个List集合实现手动分页的步骤如下:
1. 获取总记录数:List集合的大小就是总记录数。
```
int total = list.size();
```
2. 计算总页数:将总记录数除以每页记录数,向上取整即可得到总页数。
```
int pageSize = 10; // 每页记录数
int totalPages = (int) Math.ceil((double) total / pageSize);
```
3. 计算当前页的起始记录索引:根据当前页码和每页记录数,计算出当前页的起始记录索引。
```
int currentPage = 2; // 当前页码从1开始
int startIndex = (currentPage - 1) * pageSize;
```
4. 查询当前页的记录:根据起始索引和每页记录数,获取当前页的记录。
```
List<Object> pageList = new ArrayList<>();
for (int i = startIndex; i < startIndex + pageSize && i < total; i++) {
pageList.add(list.get(i));
}
```
5. 返回结果:将查询结果封装成分页对象,包含总记录数、总页数、当前页码、当前页记录等信息,返回给调用者。
```
PageResult<Object> pageResult = new PageResult<>();
pageResult.setTotal(total);
pageResult.setTotalPages(totalPages);
pageResult.setCurrentPage(currentPage);
pageResult.setList(pageList);
```
这样就实现了对一个List集合的手动分页。需要注意的是,手动分页的效率可能会受到影响,因为需要遍历整个List集合,建议对较大的List集合使用MyBatis框架提供的分页插件PageHelper来实现分页查询。
阅读全文