Встречается на собеседованиях • сегодня

ArrayList или LinkedList быстрее переберет 100 млн элементов

Для перебора 100 млн элементов `ArrayList` будет быстрее `LinkedList` из-за особенностей реализации: 1. **ArrayList**: - Хранит элементы в непрерывном блоке памяти - Итерация происходит за O(n) с высокой локальностью данных (кеш-дружелюбно) - Доступ по индексу за O(1) 2. **LinkedList**: - Элементы разбросаны в памяти (узлы с ссылками) - Итерация также O(n), но с постоянными промахами кеша - Каждый переход к следующему элементу требует разыменования указателя Пример измерения времени: ```java List arrayList = new ArrayList<>(); List linkedList = new LinkedList<>(); // Заполнение обеих коллекций 100_000_000 элементов long start = System.nanoTime(); for (int i : arrayList) { /* итерация */ } long arrayTime = System.nanoTime() - start; start = System.nanoTime(); for (int i : linkedList) { /* итерация */ } long linkedTime = System.nanoTime() - start; // arrayTime будет значительно меньше linkedTime ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы