Существует ли способ преодолеть CondurentModificationError в следующем коде или лучшую реализациюJAVA

Программисты JAVA общаются здесь
Anonymous
Существует ли способ преодолеть CondurentModificationError в следующем коде или лучшую реализацию

Сообщение Anonymous »

Я хочу сделать функцию сортировки, которая использует итератор через ArrayList . Я хочу пересечь массив в обратном направлении, проверить меньший i-th и (i-1) -т элемент, если I-й элемент меньше, я перемещаю его в переднюю часть массива.

Код: Выделить всё

import java.util.*;
// Other imports go here
// Do NOT change the class name
class Main
{
public void cq1(ArrayList list) {
ListIterator l1=list.listIterator();
ListIterator l2=list.listIterator();
while(l1.hasNext()){l1.next();l2.next();}//loop to send the listIterator to the end of ArrayList
l1.previous();//make this iterator point to the second last element
while(l1.hasPrevious())
{
int a=l1.previous();
int b=l2.previous();
if (a < b)
{
list.remove(l1.previousIndex()+1);
list.add(0, a);
}
System.out.println(list);
}

}//fn
public static void main(String[] args)
{
Main obj=new Main();
int a[]={-4, 16, 9, 1, 64, 25, 36, 4, 49};
ArrayList oe = new ArrayList();
for(int i :a)oe.add(i);
obj.cq1(oe);
}//main
}//class
Проблема заключается в том, что после первой итерации исключение: concurrentmodificationError появляется.>

Подробнее здесь: https://stackoverflow.com/questions/640 ... owing-code

Вернуться в «JAVA»