java - 为什么 iterator.next() 每次都返回相同的项目?

标签 java iterator set

我有这个代码:

    for (int j = 0; j < 7; j++) {
        if (failureCountAndDUrls.urls.iterator().hasNext()) {
            P p2 = new P().appendText("First "+min+" of "+failureCountAndDUrls.count+":");
            String id = failureCountAndDUrls.urls.iterator().next();
            }
        }

urlsSet<String>

还有.next(); 一遍又一遍地返回相同的项目。即使有 7 项

如何正确迭代所有项目?

最佳答案

问题是您每次都在创建一个新迭代器,并且每个新迭代器都具有相同的初始状态。

改为重用迭代器。

Iterator<String> it = failureCountAndDUrls.urls.iterator();
for (int j = 0; j < 7; j++) {
    if (it.hasNext()) {
        P p2 = new P().appendText("First "+min+" of "+failureCountAndDUrls.count+":");
        String id = it.next();
    }
}

关于java - 为什么 iterator.next() 每次都返回相同的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414246/

相关文章:

java - 使用迭代器将对象添加到链表

javascript - get 和 set 在 javascript 背后的想法是什么?

java - 如何组合这些 Set<?为我的 API 扩展 Vector> 过滤函数?

java - 检查 Set 是否不包含 null 的好方法

java - 在 Java JMS Spring 中为方法参数声明 Final

java - 以编程方式为 Spring 创建 JNDI 数据源

java - 从Java进行Exchange Web服务身份验证

c++ - 强制 foreach 使用 const 迭代器

python从迭代返回数组

java - 无法访问属性