Встречается на собеседованиях • сегодня
Какие знаешь реализации List
**ArrayList** - динамический массив, обеспечивает быстрый доступ по индексу (O(1)), но медленные вставки/удаления в середине (O(n)).
```java
List list = new ArrayList<>();
```
**LinkedList** - двусвязный список. Быстрые вставки/удаления (O(1)), но медленный доступ по индексу (O(n)).
```java
List list = new LinkedList<>();
```
**Vector** - устаревший аналог ArrayList с синхронизированными методами (потокобезопасен, но медленнее).
**CopyOnWriteArrayList** - потокобезопасный вариант ArrayList, создает копию при изменении.
**Stack** (наследует Vector) - реализация стека (LIFO), но лучше использовать `Deque`.
**ImmutableCollections.ListN** (Java 9+) - неизменяемые списки, создаются через `List.of()`.
Примеры специализированных реализаций:
- `Arrays.asList()` – обертка над массивом (фиксированный размер).
- `Collections.emptyList()` – неизменяемый пустой список.
- `Collections.singletonList()` – список из одного элемента.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы