Как мне разрешить недопустимое исключение состояния с помощью итератора? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть метод в 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++;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...