java List手动分页

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

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CommonalityQuery {
    private Integer pageNumber;  //页码
    private Integer quantity;    //每页多少条
    private Long count;       //总共多少条
    private T query;             //查询额条件
    private List resultList;  //返回的查询结果
    private Date startTime;      //查询的通用时间
    private Date endTime;        //查询结束时间
}
List 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 pagedSubResultList = subResultList.subList(startIndex, endIndex);

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

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

你可能感兴趣的:(javaWeb,list,java)