java List手动分页

本文介绍了如何在Java中使用`CommonalityQuery`类对数据进行分页处理,包括获取页码、每页数量、计算总记录数、验证页码范围,并根据这些参数从列表中提取子列表作为查询结果返回给用户。
摘要由CSDN通过智能技术生成

 根据页码和每页数量手动分页List。

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CommonalityQuery<T> {
    private Integer pageNumber;  //页码
    private Integer quantity;    //每页多少条
    private Long count;       //总共多少条
    private T query;             //查询额条件
    private List<T> resultList;  //返回的查询结果
    private Date startTime;      //查询的通用时间
    private Date endTime;        //查询结束时间
}
List<OrderFormSub> subResultList = new ArrayList<>();
for (OrderFormList obj : resultList) {
    subResultList.addAll(obj.getOrderFormsSubList());
}

int pageNumber = query.getPageNumber(); // 当前页码
int quantity = query.getQuantity(); // 每页显示的记录数
int totalSize = subResultList.size(); // 总记录数

// 计算最大页数
int maxPageNumber = (totalSize + quantity - 1) / quantity;

// 检查请求的页码是否超过最大页数
if (pageNumber > maxPageNumber) {
    // 如果超过了,返回空的结果集
    query.setResultList(new ArrayList<>());
} else {
    // 计算当前页的起始索引和结束索引
    int startIndex = (pageNumber - 1) * quantity;
    int endIndex = Math.min(startIndex + quantity, totalSize);

    // 获取当前页的子列表
    List<OrderFormSub> pagedSubResultList = subResultList.subList(startIndex, endIndex);

    // 设置分页后的结果和数量
    query.setResultList(pagedSubResultList);
}

query.setCount((long) subResultList.size());
// 返回响应结果
return new ResponseResult<>(200, "查询成功!", query);

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值