I цикл через копию набора объектов, но она по-прежнему дает мне ошибку, начиная с этого метода:Java - странно ConcurrentModificationException
private static Set<Updated> updates = new HashSet<>();
public static Set<GameObject> getGameObjects() {
Set<GameObject> objs = new HashSet<>();
for (Updated up : new HashSet<Updated>(updates)) {
if (up instanceof GameObject)
objs.add((GameObject) up);
}
return objs;
}
(Если для петли). Это происходит только в том случае, когда имеется довольно много GameObjects, и никогда не возникает, когда есть только несколько (например, 7). Спасибо!
Откуда: Где? Единственное место в этом коде, которое может вызвать ConcurrentModificationException, - это новое создание HashSet; CME произойдет, если «обновления» будут изменены из другого потока. – yole
GameObjects реализуют обновление и добавляются в набор при создании. – MCMastery
Есть ли другой поток, который может изменить этот набор? – yole