Java-рекурсия - будет ли это работать?

1
private void formatLines() {

    for (LineViewItem line:lineItems) {

        if (line.inLineItems.get(0).word.getText().equals(" ")) {

            line.inLineItems.remove(0); formatLines();

        }

        if (line.inLineItems.get(line.inLineItems.size()-1).word.getText().equals(" ")) {

            line.inLineItems.remove(line.inLineItems.size()-1); formatLines();

        }
    }
}

Выше - это метод, который я хочу использовать для удаления первого или последнего объекта каждой line в lineItems ArrayList, если условие true. Когда элемент удален, я хочу повторить этот процесс и проверить, есть ли еще один объект в первой и последней позиции каждой line в lineItems с true условием. Вот почему этот метод называется рекурсивным. Означает ли это, что это работает? Я сомневаюсь, что это работает правильно.

  • 13
    will this work? Ты запускал это?
  • 0
    Что говорит ваш юнит тест?
Показать ещё 12 комментариев
Теги:
methods
recursion

1 ответ

0
Лучший ответ

Думаю, это не сработает.

Если строка имеет строку с одним элементом, если вы удаляете в первом блоке if, когда вы вводите второй, если вы достигнете

line.inLineItems.get(line.inLineItems.size()-1)

line.inLineItems.size() будет 0, и вы получите исключение ArrayIndexOutOfBoundsException.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню