03. Динамический массив
Списки могут быть реализованы не только на массивах. В предыдущих главах была
рассмотрена базовая логика списков с помощью массива, однако
в java
списки могут быть реализованы не только на массивах
и по сути представляют собой только интерфейсы.
В java
список на массиве называется ArrayList
- динамический массив. Все реализации методов,
написанных в предыдущих главах, на самом деле, написаны в нём.
Для упрощения обучения они были разбиты на три этапа. Этот этап - последний, в нём осталась самая нетривиальная часть поведения логики динамических массивов.
Каждый раз при необходимости массив следует увеличивать в полтора раза
Задание
Это задание рассчитано на один урок, за него будет выставлена одна оценка
Расширьте класс MyCollection
из предыдущего задания так, чтобы он стал
динамическим массивом:
Использовать встроенные коллекции java запрещается
void removeRange(int fromIndex, int toIndex)
- удалить значения из динамического массива с индексами отfromIndex
включительно доtoIndex
включительноboolean retainAll(MyCollection myCollection)
- оставить в динамическом массиве только те элементы, которые есть в переданной в аргументах, возвращаетtrue
, если коллекция была изменена иfalse
- если нетboolean replaceAll(int source, int target)
- заменить все значения, равныеsource
, наtarget
, возвращаетtrue
, если коллекция была изменена иfalse
- если нетMyCollection subList(int fromIndex, int toIndex)
- получить новый динамический массив, составленный из элементов с индексами отfromIndex
включительно доtoIndex
- исключительно с сохранением порядка следования. Если интервал вырожденный, то требуется вернуть новую пустую коллекцию
Все поля и методы должны иметь модификатор public