public static ArrayList<Job> ready = new ArrayList<Job>();
...later on....
ArrayList<Job> temp = ready;
for (Iterator<Job> iterator = temp.iterator(); iterator.hasNext();) {
Job j = (Job) iterator.next();
if (j.number == number) {
ready.remove(j);
ready.add(j);
system.devices-=devices;
j.devices+=devices;
iterator.remove();
}
}
Зачем это ошибка? Конечно, ready = temp, но я повторяю temp, и я не изменяю temp. Как я могу обойти эту проблему?ConcurrentModificationException при использовании списка тем
Вы пытаетесь изменить список во время повтора через него. 'temp' и' ready' - это один и тот же список - изменение одного изменяет другое. Если вы хотите * скопировать * список, вы можете сделать 'temp = new ArrayList (ready)'. –
khelwood
При публикации вопроса об исключении вы ДОЛЖНЫ включать полную трассировку стека исключений и идентифицировать строку в своем коде, которая генерирует исключение. –
@khelwood Вы опубликовали свой комментарий в качестве ответа. –