使用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

浙公网安备 33010602011771号