У меня есть этот кусок кода в моем классе, и он бросает java.util.ConcurrentModificationException на выделенные жирным шрифтом строки (обозначенные ** * *)java.util.ConcurrentModificationException в моем коде iter.remove() & iter.add()
public void solve() {
**puzzleSolve(set.size(), sequence , set);**
}
//private helper method
protected void puzzleSolve(int k, String s, ArrayList<Character> u){
ListIterator<Character> iter = u.listIterator();
while(iter.hasNext())
{
Character c = iter.next();
if(k==1){ //base case
if(isAnswer(s+u.get(0)))
System.out.println(s+u.get(0)+" is the correct sequence."+ '\n');
return;
}
else{
**iter.remove();**
**puzzleSolve(k-1, s+c , u);**
iter.add(c);
removeLastChar(s);
}
}
} //end of puzzleSolve method
спасибо. вы можете знать, как я должен перепроектировать рекурсивные вызовы? Мне нужно, чтобы это произошло: для каждого символа c в u, я хочу, чтобы algoritjm запускался (множественная рекурсия) и для каждого c в u, он должен сначала удалить c из u и добавить его в S &, а затем в конце сделать все последовательности членов U – LadyM