Разница между ArrayList и LinkedList

Ключевая разница - ArrayList vs LinkedList
 

Коллекции полезны для хранения данных. В обычном массиве размер массива фиксирован. Иногда требуется создать массивы, которые могут расти по мере необходимости. Языки программирования, такие как Java, имеют коллекции. Это фреймворк с набором классов и интерфейсов. Он служит контейнером для группы элементов. Коллекции позволяют хранить, обновлять, извлекать множество элементов. Это помогает работать со структурами данных, такими как списки, множества, деревья и карты. Список является интерфейсом коллекции Framework. ArrayList и LinkedList - это два класса в структуре коллекций. Они реализуют интерфейс коллекции и интерфейс списка. В этой статье обсуждается разница между ArrayList и LinkedList. ArrayList - это класс, который расширяет AbstractList и реализует интерфейс List, который внутренне использует динамический массив для хранения элементов данных. LinkedList - это класс, который расширяет AbstractSequentialList и реализует интерфейсы List, Deque и Queue, которые внутренне используют двусвязный список для хранения элементов данных.. Это ключевое отличие между ArrayList и LinkedList.

СОДЕРЖАНИЕ

1. Обзор и основные отличия
2. Что такое ArrayList
3. Что такое LinkedList
4. Сходства между ArrayList и LinkedList
5. Сравнение бок о бок - ArrayList против LinkedList в табличной форме
6. Резюме

Что такое ArrayList?

Класс ArrayList используется для создания динамических массивов. В отличие от обычного массива, размер динамического массива не фиксирован. Объекту, созданному с использованием класса ArrayList, разрешено хранить набор элементов в списке. Емкость увеличивается автоматически, поэтому программист может добавлять элементы в список. Класс ArrayList расширяет класс AbstractList, который реализует интерфейс List. Следовательно, методы интерфейса List могут использоваться ArrayList. Для доступа к элементам используется метод get (). Метод add () можно использовать для добавления элементов в список. Метод remove () используется для удаления элемента из списка. См. Ниже программу.

Рисунок 01: Пример ArrayList

Согласно вышеупомянутой программе, объект ArrayList создан. Используя метод add, элементы могут быть добавлены динамически. Элементы «A», «B», «C», «D» и «E» добавляются с использованием метода add. Метод remove используется для удаления элемента из списка. При переходе 4 к методу удаления буква в 4-м индексе, обозначенная буквой «Е», удаляется из списка. При переборе списка с использованием цикла for буквы A, B, C и D будут печататься.

Что такое LinkedList?

Как и ArrayList, LinkedList используется для динамического хранения элементов данных. Объекту, созданному с использованием класса LinkedList, разрешено хранить набор элементов в списке. Емкость увеличивается автоматически, поэтому программист может добавлять элементы в список. Внутренне использует двусвязный список для хранения данных. В двусвязном списке данные хранятся в виде узлов. Каждый узел содержит две ссылки. Первая ссылка указывает на предыдущий узел. Следующая ссылка указывает на следующий узел в последовательности.

Класс LinkedList расширяет класс AbstractSequentialList и реализует интерфейс List. Следовательно, методы интерфейса List могут использоваться LinkedList. Метод get () можно использовать для доступа к элементам списка. Метод add () можно использовать для добавления элементов в список. Метод remove () используется для удаления элемента из списка. См. Ниже программу.

Рисунок 02: Пример с LinkedList

В соответствии с вышеуказанной программой создается объект LinkedList. Используя метод add, элементы могут быть добавлены динамически. Элементы «A», «B», «C», «D» и «E» добавляются с использованием метода add. Метод remove используется для удаления элемента из списка. При передаче значения 4 в метод удаления буква в 4-м индексе, обозначенная буквой «Е», удаляется из списка. При итерации с использованием цикла for буквы A, B, C и D будут печататься.

Каковы сходства между ArrayList и LinkedList?

  • И ArrayList, и LinkedList реализуют интерфейс List.
  • И ArrayList, и LinkedList могут содержать повторяющиеся элементы.
  • И ArrayList, и LinkedList поддерживают порядок вставки.

В чем разница между ArrayList и LinkedList?

ArrayList против LinkedList

ArrayList - это класс, который расширяет AbstractList и реализует интерфейс List, который внутренне использует динамический массив для хранения элементов данных.. LinkedList - это класс, который расширяет AbstractSequentialList и реализует интерфейсы List, Deque, Queue, которые внутренне используют двусвязный список для хранения элементов данных..
 Доступ к элементам
Доступ к элементам ArrayList быстрее, чем к LinkedList. Доступ к элементам LinkedList медленнее, чем к ArrayList.
Манипулирующие Элементы
Манипулировать элементами ArrayList медленнее, чем LinkedList. Манипулировать элементами LinkedList быстрее, чем ArrayList.
 Поведение
ArrayList выполняет в виде списка. LinkedList работает как список и очередь.

Резюме - ArrayList vs LinkedList

Каркас коллекции позволяет работать со структурами данных, такими как списки, деревья, карты и наборы. Список является интерфейсом структуры коллекции. В этой статье обсуждалась разница между ArrayList и LinkedList. ArrayList - это класс, который расширяет AbstractList и реализует интерфейс List, который внутренне использует динамический массив для хранения элементов данных. LinkedList - это класс, который расширяет AbstractSequentialList и реализует интерфейсы List, Deque, Queue, которые внутренне используют двусвязный список для хранения элементов данных. В этом разница между ArrayList и LinkedList.

Ссылка:

1. Введение в связанный список | Учебник по структуре данных | Studytonight. Доступна здесь
2. «LinkedList в Java - javatpoint.», The Point, доступно здесь
3. «Класс Java ArrayList - javatpoint». Точка, доступная здесь