我有一个要求,比如需要通过将寻呼机的初始大小设置为 500 来循环访问 Web 服务的所有条目。为了实现此目的,我正在编写一段代码,该代码将第一次使用 pageindex 1 获取初始 500 个条目,并且然后将索引增加到 2 等等,直到我得到所有条目。我目前有 504 个条目要循环。但我从我的代码中得到了 1004 计数。谁能帮我解决这个问题。这是代码。
int pageIndex = 1;
List<User> usersList = getUsers(pageIndex);
List<User> allUsersList = new ArrayList<User>();
allUsersList.addAll(usersList);
while (!allUsersList.isEmpty()) {
allUsersList = new ArrayList<User>();
allUsersList = getUsers(pageIndex);
usersList.addAll(allUsersList);
pageIndex++;
}
getUsers 方法如下:
private List<User> getUsers(int pageIndex){
UserFilter filter = new UserFilter();
FilterPager pager = new FilterPager();
pager.pageIndex = pageIndex;
pager.pageSize = 500;
UserService userService = client.getUserService();
return userService.list(filter, pager).objects;
}
提前致谢。
最佳答案
您使用同一个索引两次。在循环列表之前,您不需要单独处理第一个索引。
除此之外,我认为你可以编写更短的代码,例如这样:
int pageIndex = 1;
List<User> usersList;
List<User> allUsersList = new ArrayList<User>();
while ((usersList = getUsers(pageIndex++)) != null) {
allUsersList.addAll(usersList);
}
关于java - 如何通过设置分页器循环遍历Java arraylist条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33540620/