❓ ArrayList или LinkedList?
В подавляющем большинстве случаев → ArrayList.
ArrayList — это динамический массив: доступ по индексу O(1), вставка/удаление в середине O(n) из-за сдвига элементов. Но на практике он почти всегда быстрее за счёт локальности данных в памяти и дружбы с кешем процессора.
LinkedList — двусвязный список: вставка/удаление по уже найденной позиции O(1), но доступ по индексу O(n), и каждый элемент — отдельный объект с накладными расходами на ссылки.
LinkedList оправдан редко — например, когда нужен Deque с частыми вставками в оба конца. Для обычного списка берите ArrayList.
🐸 Библиотека собеса по Java
#core
Post #1367
1.14K
- 👍 7
- 👏 2
- 🔥 1