Ответ
ArrayList — это реализация динамического массива в Java. Внутри он использует обычный массив Object[], который автоматически расширяется при добавлении элементов.
Основные особенности:
- Начальный размер массива — 10 (по умолчанию).
- При добавлении элемента, если места нет, создаётся новый массив (обычно в 1.5 раза больше) и копируются старые данные.
- Доступ по индексу — O(1), вставка/удаление в середину — O(n) из-за сдвига элементов.
Пример:
ArrayList<String> list = new ArrayList<>();
list.add("A"); // Добавление элемента
list.remove(0); // Удаление по индекту
String item = list.get(0); // Получение элемента
Плюсы:
- Быстрый доступ по индексу.
- Удобные методы для работы (add, remove, get).
Минусы:
- Медленные вставка/удаление в середину.
- Тратит память на резерв (не всегда заполнен).