Вот мой код:Java App бросает ConcurrentModificationException
public class Test {
public static void main(String[] args){
ArrayList<Integer> list = new ArrayList();
list.add(1);
list.add(2);
list.add(2);
list.add(2);
list.add(5);
int inteval = 0;
Iterator<Integer> it = list.iterator();
for(;it.hasNext();){
Integer n = it.next();
list.remove(n);
if (list.contains(n-inteval)){
list.remove(list.indexOf(n-inteval));
if (list.contains(n-inteval-inteval)){
list.remove(list.indexOf(n-inteval-inteval));
}else{
list.add(n-inteval);
list.add(n);
}
}
}
}
}
этот код будет бросать ConcurrentModificationException, я судимый использовать CopyOnWriteArrayList, но я нашел it.next() возвращает значение, которое удалено от последнего времени! как я могу его исправить?
Возможный дубликат [Итерация через Collection, избегая при удалении ConcurrentModificationException в цикле] (http://stackoverflow.com/questions/223918/iterating-through-a-collection- avoiding-concurrentmodificationexception-when-re) – Raedwald