如何通过设置寻呼机循环遍历 Java 数组列表条目?
Posted
技术标签:
【中文标题】如何通过设置寻呼机循环遍历 Java 数组列表条目?【英文标题】:How to loop through Java arraylist entries by setting pager? 【发布时间】:2015-11-05 09:19:03 【问题描述】:我有一个要求,比如需要通过将寻呼机设置为初始大小 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;
提前致谢。
【问题讨论】:
【参考方案1】:您使用了两次相同的索引。在循环遍历列表之前,您不需要单独处理第一个索引。
除此之外,我认为您可以编写更短的代码,例如:
int pageIndex = 1;
List<User> usersList;
List<User> allUsersList = new ArrayList<User>();
while ((usersList = getUsers(pageIndex++)) != null)
allUsersList.addAll(usersList);
【讨论】:
谢谢。会试试这个。 我也试过了,但遇到了一些问题。所以用其他方法去了。非常感谢您指导我。【参考方案2】:您必须按如下方式重写您的 while 循环:
int pageIndex = 1;
List<User> usersList = new ArrayList<User>();
while (1 == 1)
allUsersList = getUsers(pageIndex);
if (allUserList == null || allUserList.size() == 0)
break;
usersList.addAll(allUsersList);
pageIndex++;
【讨论】:
谢谢。我会尝试这种方法。以上是关于如何通过设置寻呼机循环遍历 Java 数组列表条目?的主要内容,如果未能解决你的问题,请参考以下文章