- Баллы
- 66
Привет.
У меня есть List<String>, содержащий случайное количество UUID'ов. Ну не суть, что он там содержит.
Каждые пять тиков я прохожу по этому массиву с помощью for:
При соблюдении некоторых условий, внутри этого for происходит вызов функции function(тот самый string из for);, внутри которой завершающим этапом следует такой код:
Временами на первой строке первого примера кода выбрасывает ConcurrentModificationException на вызов list.keySet(). Каким образом можно решить эту проблему? Что я упустил или чего не знаю?
Я знаю про Iterator, но использовать его не могу, так как функция function(string);, в которой выполняется удаление из list, вызывается не только в вышепоказанном цикле, но и в одиночку на любом из элементов массива list по желанию игрока - а там listIterator.remove(); не прокатит.
У меня есть List<String>, содержащий случайное количество UUID'ов. Ну не суть, что он там содержит.
Каждые пять тиков я прохожу по этому массиву с помощью for:
Java:
for (String string : list.keySet()) {
// do Something..
}
При соблюдении некоторых условий, внутри этого for происходит вызов функции function(тот самый string из for);, внутри которой завершающим этапом следует такой код:
Java:
list.remove(тот самый string из for, переданный function() в качестве аргумента);
Временами на первой строке первого примера кода выбрасывает ConcurrentModificationException на вызов list.keySet(). Каким образом можно решить эту проблему? Что я упустил или чего не знаю?
Я знаю про Iterator, но использовать его не могу, так как функция function(string);, в которой выполняется удаление из list, вызывается не только в вышепоказанном цикле, но и в одиночку на любом из элементов массива list по желанию игрока - а там listIterator.remove(); не прокатит.
