Chuvaaak
@Chuvaaak
Начинающий веб-разработчик

Как работает данный метод remove?

package main;

public class MyArrayList {
    private String[] array = new String[10];
    private int size = 0;

    public void remove(int index) {
        if (index >= 0 && index < size) {
            for (int i = index; i < array.length - 1; i++) {
                array[i] = array[i + 1];
            }
            size--;
        }
    }
    public void add(String s) {
        array[size] = s;
        size++;
        if (size == array.length) {
            String[] newArray = new String[array.length * 2];
            for (int i = 0; i < array.length; i++) {
                newArray[i] = array[i];
            }
            array = newArray;
        }
    }


}


Принцип работы вроде понятен - метод присваивает текущему элементу значение следующего. Но получается, если предпоследнему элементу присвоится значение последнего и на этом метод прекратит свою работу, то у последнего элемента и предпоследнего будут одинаковые значения?
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
Ну да, так и будет, но на последний элемент большe не надо будет смотреть, из-за того, что есть size, это логический размер этого контейнера.
И в цикле for происходит лишняя работа. i < array.length - 1, а должно быть < size.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы