java - 如何通过设置分页器循环遍历Java arraylist条目?

标签 java arraylist size pager

我有一个要求,比如需要通过将寻呼机的初始大小设置为 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/

相关文章:

java - 尝试将 Double 解析为 String 时出现 ArrayOutOfBounds 异常

java - 如何 jsonify 具有新值的对象?

用于获取最新消息的 javax.mail.search 替代方案

java - 可嵌入的 jpa 类应该实现 equals 和 hashCode 吗?

javascript - 在 JavaScript 函数中获取 ArrayList JSP 变量

java - 对象作为HashMap中的键值并在jsp中使用

xcode - 如何在 Xcode Story Board 中添加关于多设备的动态字体大小

wpf - 不同大小的WPF表单-设计模式与运行时模式

mysql - 唯一索引的索引大小为 0,行数为 1.5M

Java 可执行 jar 不能作为 ./program.jar 在 OS X 上执行