返回值为Map进行分页
时间: 2025-07-05 08:07:33 浏览: 2
### Java 使用 Map 作为返回值进行分页处理
在 Java 中,可以利用 `Map` 来封装分页查询的结果。下面是一个简单的例子来展示如何实现这一功能。
#### 创建分页工具方法
为了更好地管理分页逻辑,通常会创建一个专门用于分页的方法:
```java
public class PaginationUtil {
/**
* 获取分页数据并将其放入Map中.
*
* @param list 数据列表
* @param page 当前页面索引 (从0开始)
* @param pageSize 页面大小
* @return 包含分页信息的Map对象
*/
public static Map<String, Object> getPageData(List<?> list, int page, int pageSize) {
Map<String, Object> resultMap = new HashMap<>();
// 计算总记录数
long totalRecords = list.size();
// 设置起始位置
int fromIndex = Math.min(page * pageSize, (int)totalRecords);
// 设置结束位置
int toIndex = Math.min(fromIndex + pageSize, (int)totalRecords);
// 提取子集
List<?> subList = list.subList(fromIndex, toIndex);
// 将结果存入map
resultMap.put("data", subList);
resultMap.put("currentPage", page);
resultMap.put("pageSize", pageSize);
resultMap.put("totalPages", (int)Math.ceil((double)totalRecords / pageSize));
resultMap.put("totalElements", totalRecords);
return resultMap;
}
}
```
此代码片段定义了一个名为 `PaginationUtil` 的静态实用程序类,其中包含一个名为 `getPageData` 的公共静态方法,该方法接收三个参数:要分页的数据列表、当前页码以及每页显示的最大项数[^1]。
#### 调用示例
假设有一个模拟的商品列表,并希望对其进行分页操作,则可以通过如下方式调用上述函数:
```java
import java.util.Arrays;
// 假设这是商品列表
List<Product> productList = Arrays.asList(
new Product(1L,"Product A"),
new Product(2L,"Product B"),
...
);
// 执行分页获取第一页共5条记录
Map<String,Object> resultPageOne = PaginationUtil.getPageData(productList, 0, 5);
System.out.println(resultPageOne.get("data")); // 输出本页的产品集合
System.out.println(resultPageOne.get("totalPages")); // 总共有多少页
System.out.println(resultPageOne.get("totalElements"));// 商品总数目
```
这段代码展示了如何通过传入不同的 `page` 和 `pageSize` 参数来获得不同页次的数据切片。
阅读全文
相关推荐


















