2015-05-23 4 views
3

У меня есть этот код:Почему iterator.next() возвращает один и тот же элемент каждый раз?

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

urls является Set<String>

и еще .next(); возвращает тот же элемент снова и снова. Несмотря на то, что есть 7 предметов

Как можно правильно перебрать все элементы?

ответ

8

Проблема в том, что вы каждый раз создаете новый итератор, и каждый новый итератор имеет такое же начальное состояние.

Вместо этого используйте итератор.

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

Вы спасли мое время :) – Neel

Смежные вопросы