Реальный пример использования LinkedList

201
21 марта 2018, 04:54

В каких случаях можно использовать LinkedList, на собеседованиях спрашивают где можно использовать, когда привожу примеру типа как очередь или стек, они говорят что для таких случаев есть свои Queue и Stack

Answer 1

Каноническим ответом на такой вопрос является следующий:

LinkedList используется если необходимо производить много операций вставки/удаления элементов в середине списка и мало операций доступа к элементу по индексу.

Структура связного списка в таких операциях будет эффективнее массива, на котором основана реализация ArrayList, потому что при вставке элементов в середину ArrayList физически сдвигаются все последующие элементы.

Но у LinkedList есть недостатки по сравнению с ArrayList:

  1. Потребление памяти на один элемент у LinkedList больше, чем у ArrayList (для каждого элемента хранятся ссылки на предыдущий и следующий элементы)
  2. Доступ к элементу по индексу медленнее (O(n) в худшем случае)

А со следующими задачами обе реализации справляются одинаково:

  1. Поиск элемента по значению (в обеих реализациях O(n) в худшем случае)
  2. Итерация по элементам (сложность получения следующего элемента O(1) в обоих случаях)

С учётом того что ArrayList при вставке сдвигает элементы массива достаточно быстрым нативным методом System.arraycopy() (документация утверждает, что сложность вставки n элементов в ArrayList будет O(n)), я бы рекомендовал в общем случае использовать только ArrayList, а к LinkedList обращаться разве что в академических целях (например, в бенчмарках).

READ ALSO
Запуск объекта на постоянную работу?

Запуск объекта на постоянную работу?

Подскажите, как можно реализоватьЕсть переключатель

110
Не удалось открыть файл базы данных

Не удалось открыть файл базы данных

При переходе в activity, в которой находится БД выскакивает ошибка: Unable to open the database fileКод данной activity

209
Одна сущность для работы с базой и JSON

Одна сущность для работы с базой и JSON

Разрабатываю Rest Api на SpringПроект растет в размерах

154
Java postgresql connection, ping failed

Java postgresql connection, ping failed

Поставил последнюю версию драйвера для Postgesql, больше ничего не ставилПодключаю:

123