Добавление элементов в ArrayList при использовании Iterator в Java - PullRequest
3 голосов
/ 07 ноября 2011

У меня была проблема с добавлением элементов к моему ArrayList при использовании Iterator.В следующем коде он дает мне такой вывод:

a
k
s

Но все же он пропускает тот, который я добавил через итератор.то есть мне не хватает r в моем выводе.Есть ли способ добавить элементы в ArrayList, используя Iterator?

import java.util.ArrayList;
import java.util.ListIterator;
public class Test 
{
public static void main(String args[])
{
    ArrayList<String> array_test= new ArrayList<String>();
    array_test.add("a");
    array_test.add("k");
    array_test.add("d");
    array_test.add("s");
    array_test.remove("d");
    ListIterator<String> it=array_test.listIterator();
    while(it.hasNext())
    {   
        String link=it.next();  
        it.add("r");
        System.out.println(link);

    }   
    //System.out.println("Contents of arrays list "+array_test);
}


}

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Отметьте Javadoc . Это работает, как задокументировано. Добавление элемента во время итерации не возвращает этот элемент через итератор, если вы не вернетесь назад.

1 голос
/ 22 октября 2014

Извините за поздний ответ. Вот как я решил эту проблему.

for(ListIterator it=array_test.listIterator();it.hasNext();){ 
 String link=it.next(); 
   it.add("r");
   it.previous();
   it.add("kk");
   it.previous();
System.out.println(link);  
} 
...