Skip to main content

03. Динамический массив

Списки могут быть реализованы не только на массивах. В предыдущих главах была рассмотрена базовая логика списков с помощью массива, однако в java списки могут быть реализованы не только на массивах и по сути представляют собой только интерфейсы.

В java список на массиве называется ArrayList - динамический массив. Все реализации методов, написанных в предыдущих главах, на самом деле, написаны в нём.

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

Напоминание

Каждый раз при необходимости массив следует увеличивать в полтора раза

Задание

Трудоёмкость

Это задание рассчитано на один урок, за него будет выставлена одна оценка

Расширьте класс MyCollection из предыдущего задания так, чтобы он стал динамическим массивом:

Использовать встроенные коллекции java запрещается

  1. void removeRange(int fromIndex, int toIndex) - удалить значения из динамического массива с индексами от fromIndex включительно до toIndex включительно
  2. boolean retainAll(MyCollection myCollection) - оставить в динамическом массиве только те элементы, которые есть в переданной в аргументах, возвращает true, если коллекция была изменена и false - если нет
  3. boolean replaceAll(int source, int target) - заменить все значения, равные source, на target, возвращает true, если коллекция была изменена и false - если нет
  4. MyCollection subList(int fromIndex, int toIndex) - получить новый динамический массив, составленный из элементов с индексами от fromIndex включительно до toIndex - исключительно с сохранением порядка следования. Если интервал вырожденный, то требуется вернуть новую пустую коллекцию

Все поля и методы должны иметь модификатор public

Ссылка на контест