使用do-while分页调用接口

使用场景

远程请求接口,接口每次请求数据条数有限制,只能用分页多次调取再合并,需要使用总条数total和每次最大分页size去计算调用次数

之前都是老实的使用取模取余来计算,,do-while会看起来优雅简单很多。

代码示例 ①

List<Data> list = new ArrayList<>();
int pageNo = 0;
int pageSize = 100;
int total = 0;
do {
// 页码加1
pageNo++;
/* 调用api逻辑代码 */
list.addAll(datas);
} while (pageNo * pageSize < total);

代码示例 ②

public static void main(String[] args) {
List<Integer> listData = new ArrayList<>();
for (int i = 0; i < 100; i++) {
listData.add(i);
}
List<Integer> list = new ArrayList<>();
int pageNo = 0;
int pageSize = 10;
int total = listData.size();
do {
// 页码加1
pageNo++;
// 切割数据
int start = (pageNo - 1) * pageSize;
int end = Math.min((start + pageSize), total);
List<Integer> empList = listData.subList(start, end);
/*=======业=务=====*/
list.addAll(empList);
} while (pageNo * pageSize < total);
System.out.println("list = " + list);
}

附:分页计算公式

// 起始0
int start = (currentPage - 1) * pageSize
posted @   生生灯火半杯月  阅读(185)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示