Какие знаешь реализации List в Java

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

Ответ

ArrayList – реализация на основе динамического массива. Быстрый доступ по индексу (O(1)), но медленные вставка/удаление в середине (O(n)).

List<String> list = new ArrayList<>();

LinkedList – двунаправленный связный список. Быстрые вставка/удаление (O(1)), но медленный доступ по индексу (O(n)).

List<Integer> list = new LinkedList<>();

Vector – устаревший аналог ArrayList с синхронизированными методами (потокобезопасный, но медленнее).

CopyOnWriteArrayList – потокобезопасная реализация, создающая новую копию массива при изменении. Подходит для редких записей и частого чтения.

Arrays.asList() – возвращает неизменяемый список фиксированного размера на основе массива.

List<String> fixedList = Arrays.asList("a", "b");