Zmieniając coś w obiektach umieszonych w kolekcji powoduje wyjątek java.util.ConcurrentModificationException.
Kolekcja(tu: eventList) jest przeglądana w poniższym kodzie przez ListIterator. Wywołanie metody action() powoduje zmainy stanów obiektów kolekcji albo wstawienie nowych obiektów.
Uruchomienie metody ( action() )zmieniającej coś w kolekcji w momencie gdy ta kolekcja jest obslugiwana przez Iterator powoduje wyjątek. Czy java rozwiązuje taki problem?
public class Conrtoller
{
private LinkedList<Event> eventList=new LinkedList<Event>();
public void addEvent(Event c){ eventList.add(c);}
public void run()
{
ListIterator<Event> it=eventList.listIterator();
while(it.hasNext()){
if(it.next().ready())
{
System.out.println(it.previous());
it.next().action();
it.remove();
}
}
}
}