教我写一个分页工具类,语言是java,要求注释详细
时间: 2023-05-25 22:05:55 浏览: 60
以下是一个简单的分页工具类,用于将一些数据分成多个页面。这个类有一个 pageCount() 方法,它可以计算数据的总页数。还有一个 getPageData() 方法,它可以根据页码和每页条目数返回一个分页的数据子集。
代码如下:
```java
public class Pagination {
private List<Object> data; // 所有的数据
private int pageSize; // 每页显示的条目数
public Pagination(List<Object> data, int pageSize) {
this.data = data;
this.pageSize = pageSize;
}
/**
* 计算数据的总页数
*
* @return 数据的总页数
*/
public int pageCount() {
return (int) Math.ceil((double) data.size() / pageSize);
}
/**
* 根据页码和每页条目数返回一个分页的数据子集
*
* @param pageNum 页码
* @return 分页的数据子集
*/
public List<Object> getPageData(int pageNum) {
int startIndex = (pageNum - 1) * pageSize;
int endIndex = startIndex + pageSize;
if (endIndex > data.size()) {
endIndex = data.size();
}
return data.subList(startIndex, endIndex);
}
}
```
这个类有两个变量:data 和 pageSize。data 是一个包含所有数据的 List,pageSize 是每页显示的条目数。
pageCount() 方法使用 Math.ceil() 方法来计算数据的总页数,它将数据的总长度除以每页的条目数,并将结果四舍五入到最接近的整数。
getPageData() 方法使用 startIndex 和 endIndex 变量来计算数据子集的开始和结束索引。它使用 List 的 subList() 方法来返回分页数据的子集。
使用方法:
```java
public static void main(String[] args) {
List<Object> data = new ArrayList<>();
// 添加一些数据
Pagination pagination = new Pagination(data, 10); // 每页显示10条数据
int pageCount = pagination.pageCount(); // 计算数据的总页数
List<Object> pageData = pagination.getPageData(1); // 获取第1页的数据
}
```
在这个例子中,我们创建了一个分页器对象,并将一个包含所有数据的 List 和每页显示的条目数传递给它。然后,我们使用 pageCount() 方法计算数据的总页数,并使用 getPageData() 方法获取第1页的数据子集。