Вопрос №6059 от пользователя Andy в уроке «Модуль 1. Урок 5. Класс AbstractCollection.», курс «Java: Структуры данных»

Andy

Наверно жестко затупил где-то по мелочи, но не могу понять, почему не возникает проблем с методом remove(index) в родительском классе:

private void remove(final int index) {
  if (index != this.size() - 1)
    System.arraycopy(m, index + 1, m, index, this.size() - index - 1);
  size--;
}

Когда остается пустой массив (т.е. size=0), при вызове этого метода size должен уходить в минус.

2 0

Вячеслав Ковалевский

Вы правы, выглядит как бага, скорее всего этот случай просто не покрыт тестами и метод вызывается на не нулевых массивах только.

0

Andy

В общем да, просто изначальное удивление было связано с тем, что я вызывал этот метод несколько раз в тесте при нулевом размере массива, но size все равно оставался нулем. Именно поэтому я написал. Правда потом я понял, что инстанс класса создавался под родительским типом, и собственные методы класса отсекались. Потому на size никакого влияния не было. Да и вообще, имею пробелы по приведению типов, в том числе сужающему/расширяющему.

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
30 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
30 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
30 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
30 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
30 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
30 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
30 июня 5 месяцев