使用场景
远程请求接口,接口每次请求数据条数有限制,只能用分页多次调取再合并,需要使用总条数total和每次最大分页size去计算调用次数
之前都是老实的使用取模取余来计算,,do-while会看起来优雅简单很多。
代码示例 ①
| List<Data> list = new ArrayList<>(); |
| int pageNo = 0; |
| int pageSize = 100; |
| int total = 0; |
| do { |
| |
| pageNo++; |
| |
| |
| |
| 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 { |
| |
| 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); |
| |
| } |
附:分页计算公式
| |
| int start = (currentPage - 1) * pageSize |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理