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

时间:2015-05-23 15:11:03

标签: 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个项目

如何正确迭代所有项目?

1 个答案:

答案 0 :(得分:9)

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

重新使用迭代器。

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();
    }
}