Как работает ArrayList

«Как работает ArrayList» — вопрос из категории Java, который задают на 26% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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).

Минусы:

  • Медленные вставка/удаление в середину.
  • Тратит память на резерв (не всегда заполнен).