Встречается на собеседованиях • сегодня
В какой структуре данных удаление элемента из середины произойдет быстрее: ArrayList или LinkedList
В `LinkedList` удаление из середины будет быстрее, чем в `ArrayList`, если известен точный узел для удаления.
**Почему?**
- `ArrayList`: при удалении элемента из середины (`O(n)`) нужно сдвигать все последующие элементы.
- `LinkedList`: удаление по узлу (`O(1)`), но поиск узла (`O(n)`). Если узел уже известен (например, через `ListIterator`), удаление будет быстрым.
**Пример:**
```java
List arrayList = new ArrayList<>(List.of(1, 2, 3, 4));
List linkedList = new LinkedList<>(List.of(1, 2, 3, 4));
// Удаление из середины ArrayList (медленнее)
arrayList.remove(2); // Сдвигает элементы после индекса 2
// Удаление из середины LinkedList (быстрее, если итератор уже на позиции)
ListIterator it = linkedList.listIterator(2);
it.next(); // Перемещаемся к элементу 3
it.remove(); // Удаление O(1)
```
**Итог:** `LinkedList` выигрывает, если работа ведется через итератор. В остальных случаях разница незначительна из-за поиска узла.

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