Я думаю, у вас есть ConcurrentModificationException
. Попробуйте использовать итератор, что-то вроде этого:
Iterator<Event> it = eventList.iterator();
while(it.hasNext())
{
Event ev = it.next();
if (ev.ready())
it.remove();
}
Редактировать
Почему он выбрасывает исключение ConcurrentModificationException?
Если вы перебираете коллекцию, используя Iterator
напрямую или for(E : list)
, и , вы изменяете коллекцию, вызывая add
, remove
или подобное, вы получите это исключение. Это пытается указать, что есть проблема в коде. Проблема в том, что один фрагмент кода хочет перебрать все объекты, в то время как другой фрагмент добавляет или удаляет объекты. Первый кусок кода попадает в неприятности, как он может зацикливаться на всем, если коллекция продолжает изменяться? Таким образом, «они» решили, что вы не можете изменять коллекцию, когда вы зацикливаетесь на ней. (Если вы не измените его с помощью итератора, который вы используете для цикла, как это делает этот код. it.remove()
, it
является итератором цикла и, следовательно, не дает сбоя.) Надеюсь, что это имеет смысл.