При удалении элементов выскакивает IndexOutOfBoundsException

125
17 октября 2019, 08:50

написал код для удаления элемента последующих элементов из списка по индексу.

public void deletеElementAndNextElements(String string) {
    int indexOf = stringList.indexOf(string);
    do {
        stringList.remove(indexOf);
    } while (!stringList.get(indexOf).isEmpty());

Выскакивает ошибка

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

Что я не так делаю

Answer 1

Сама по себе ошибка это выход за пределы массива

Можно так

    public static void deletеElementAndNextElements(String string) {
        int indexOf = stringList.indexOf(string);
        //если такая строка в списке не найдела то выходим
        if(indexOf == -1)
            return;
        while(stringList.size() > indexOf){
            stringList.remove(stringList.size()-1);
        }
    }

или так

 public static void deletеElementAndNextElements(String string) {
    int indexOf = stringList.indexOf(string);
    //если такая строка в списке не найдела то выходим
    if(indexOf == -1)
        return;
    List<String> sublist = stringList.subList(indexOf,stringList.size());
    stringList.removeAll(sublist);
}
READ ALSO
Возврат из сервлета на уже открытую страницу jsp

Возврат из сервлета на уже открытую страницу jsp

Я пытаюсь делать приложение по технологии MVC, используя Servlet + Jsp+JstlРаботает оно так: 1

114
Пробежаться по словарю, отображению (Map)

Пробежаться по словарю, отображению (Map)

Помогите разобраться пример:

126
Как привести inputstream к fileinputstream

Как привести inputstream к fileinputstream

Как привести inputstream к fileinputstream? Так метод не работает:

121
JavaFX проблемы с jar файлом

JavaFX проблемы с jar файлом

Здраствуйте, я написал FX приложение которое состоит из 3-ех окон

131