帮我用Java实现一个分页的工具类
好的,下面是一个简单的Java分页工具类实现:
public class PageUtil<T> {
private List<T> dataList; // 数据列表
private int currentPage; // 当前页码
private int pageSize; // 每页数据量
private int totalCount; // 总数据量
private int totalPage; // 总页数
/**
* 构造函数
*
* @param dataList 数据列表
* @param currentPage 当前页码
* @param pageSize 每页数据量
*/
public PageUtil(List<T> dataList, int currentPage, int pageSize) {
this.dataList = dataList;
this.currentPage = currentPage;
this.pageSize = pageSize;
this.totalCount = dataList.size();
this.totalPage = (int) Math.ceil((double) totalCount / pageSize);
}
/**
* 获取当前页数据
*
* @return 当前页数据列表
*/
public List<T> getCurrentPageData() {
int startIndex = (currentPage - 1) * pageSize;
int endIndex = Math.min(startIndex + pageSize, totalCount);
return dataList.subList(startIndex, endIndex);
}
/**
* 获取总页数
*
* @return 总页数
*/
public int getTotalPage() {
return totalPage;
}
/**
* 获取当前页码
*
* @return 当前页码
*/
public int getCurrentPage() {
return currentPage;
}
/**
* 设置当前页码
*
* @param currentPage 当前页码
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* 获取每页数据量
*
* @return 每页数据量
*/
public int getPageSize() {
return pageSize;
}
/**
* 设置每页数据量
*
* @param pageSize 每页数据量
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* 获取总数据量
*
* @return 总数据量
*/
public int getTotalCount() {
return totalCount;
}
/**
* 设置总数据量
*
* @param totalCount 总数据量
*/
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
/**
* 获取数据列表
*
* @return 数据列表
*/
public List<T> getDataList() {
return dataList;
}
/**
* 设置数据列表
*
* @param dataList 数据列表
*/
public void setDataList(List<T> dataList) {
this.dataList = dataList;
}
}
使用示例:
// 假设有一个包含10个元素的列表
List<String> dataList = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
dataList.add("Data " + i);
}
// 每页显示3个元素,当前页码为2
PageUtil<String> pageUtil = new PageUtil<>(dataList, 2, 3);
// 获取当前页的数据
List<String> currentPageData = pageUtil.getCurrentPageData();
// 输出当前页的数据
for (String data : currentPageData) {
System.out.println(data);
}
// 输出总页数和总数据量
System.out.println("Total page: " + pageUtil.getTotalPage());
System.out.println("Total count: " + pageUtil.getTotalCount());
输出结果:
Data 4
Data 5
Data 6
Total page: 4
Total count: 10
希望能对你有所帮助
原文地址: https://www.cveoy.top/t/topic/fn3g 著作权归作者所有。请勿转载和采集!