У меня есть метод в Java, который принимает два списка, связанный список строк (w) и список массивов целых чисел (i). Я хочу, чтобы он перебрал список строк, пока не достигнет индекса, указанного каждым числом, хранящимся в списке целых чисел. Переменная shift должна учитывать тот факт, что слова будут сдвигаться, если предыдущее будет удалено. Если дело доходит до меньшего числа, я хочу, чтобы итератор начинался заново с 0. Я получаю исключение о недопустимом состоянии, когда пытаюсь удалить с помощью итератора, и я не уверен, почему. Любые предложения о том, почему это не работает, будут полезны. Спасибо.
Iterator<String> iter = w.iterator();
int index = 0;
iter.next();
for (int y = 0; y<i.size(); y++) {
while (index != (i.get(y)-shift)) {
if(y<(i.size()-1)) {
if (i.get(y+1)<i.get(y)) {
iter = w.iterator();
iter.next();
shift = 0;
index = 0;
}
}
while (index<(i.get(y)-shift)) {
index++;
iter.next();
}
}
iter.remove();
shift++;
}