Самодельный ArrayList #2
Поддержать канал: https://www.donationalerts.com/r/andd3dfx GitHub: https://github.com/andrei-punko 00:00 — Вступление: план перехода от Iterable к интерфейсу Collection. 00:45 — Смена сигнатур: корректировка методов add и remove под стандарты Java Collection. 02:30 — Составление плана работы (Todo List) для реализации 7 недостающих методов. 04:53 — Реализация метода contains: почему важна проверка на null и использование equals. 06:34 — Реализация containsAll: логика обхода переданной коллекции. 07:54 — Реализация removeAll: использование флага result для отслеживания изменений. 10:50 — Написание метода addAll: разбор двух подходов (поштучно vs блочное копирование). 13:43 — Реализация toArray: работа с типизированными массивами и копированием данных. 18:30 — Глубокий разбор метода toArray(T[] a): кейсы с разной длиной массивов и обнулением (null). 20:54 — Оптимизация addAll: внедрение блочного копирования через System.arraycopy. 23:44 — Логика динамического расширения массива (Resize): расчет нового размера через factor. 27:36 — Реализация retainAll: удаление элементов, не входящих в переданную коллекцию. 36:58 — Рефакторинг retainAll: переход от итератора к циклу со сдвигом индексов. 41:20 — Начало масштабного тестирования: перенос и группировка тестов. 45:00 — Тестирование методов contains и containsAll. 50:25 — Тестирование addAll: проверка корректности добавления элементов. 53:50 — Тестирование removeAll и проверка итогового размера (size) коллекции. 55:20 — Тестирование toArray (Object и Typed версии) с проверкой граничных случаев. 01:00:30 — Тестирование retainAll: проверка фильтрации элементов. 01:01:50 — Отладка (Debug): поиск причины зависания теста addAll и исправление бага в условии ресайза. 01:09:00 — Финальная проверка работы ресайза в дебаге: как массив растет с 10 до 17 элементов. 01:14:00 — Итоги: подводим черту под реализацией Collection и проверка чистоты кода (импорты, форматирование).
Поддержать канал: https://www.donationalerts.com/r/andd3dfx GitHub: https://github.com/andrei-punko 00:00 — Вступление: план перехода от Iterable к интерфейсу Collection. 00:45 — Смена сигнатур: корректировка методов add и remove под стандарты Java Collection. 02:30 — Составление плана работы (Todo List) для реализации 7 недостающих методов. 04:53 — Реализация метода contains: почему важна проверка на null и использование equals. 06:34 — Реализация containsAll: логика обхода переданной коллекции. 07:54 — Реализация removeAll: использование флага result для отслеживания изменений. 10:50 — Написание метода addAll: разбор двух подходов (поштучно vs блочное копирование). 13:43 — Реализация toArray: работа с типизированными массивами и копированием данных. 18:30 — Глубокий разбор метода toArray(T[] a): кейсы с разной длиной массивов и обнулением (null). 20:54 — Оптимизация addAll: внедрение блочного копирования через System.arraycopy. 23:44 — Логика динамического расширения массива (Resize): расчет нового размера через factor. 27:36 — Реализация retainAll: удаление элементов, не входящих в переданную коллекцию. 36:58 — Рефакторинг retainAll: переход от итератора к циклу со сдвигом индексов. 41:20 — Начало масштабного тестирования: перенос и группировка тестов. 45:00 — Тестирование методов contains и containsAll. 50:25 — Тестирование addAll: проверка корректности добавления элементов. 53:50 — Тестирование removeAll и проверка итогового размера (size) коллекции. 55:20 — Тестирование toArray (Object и Typed версии) с проверкой граничных случаев. 01:00:30 — Тестирование retainAll: проверка фильтрации элементов. 01:01:50 — Отладка (Debug): поиск причины зависания теста addAll и исправление бага в условии ресайза. 01:09:00 — Финальная проверка работы ресайза в дебаге: как массив растет с 10 до 17 элементов. 01:14:00 — Итоги: подводим черту под реализацией Collection и проверка чистоты кода (импорты, форматирование).



