В чем разница между ArrayList и List

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

Ответ

ArrayList — это конкретная реализация интерфейса List на основе динамического массива.
List — это интерфейс, который определяет контракт для работы с коллекциями (например, add(), get(), remove()).

Ключевые отличия:

  • ArrayList можно создать напрямую (new ArrayList<>()), а List — нет, так как это интерфейс.
  • List может иметь другие реализации (LinkedList, CopyOnWriteArrayList и т. д.).

Пример:

List<String> list = new ArrayList<>(); // Полиморфизм
ArrayList<String> arrayList = new ArrayList<>(); // Конкретный тип

Использование List в объявлении предпочтительнее для гибкости кода.