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

Оглавление:

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

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

Видео: Разница между ArrayList и LinkedList
Видео: ArrayList, LinkedList. Java собеседование 2024, Ноябрь
Anonim

Ключевое различие - ArrayList против LinkedList

Коллекции полезны для хранения данных. В обычном массиве размер массива фиксирован. Иногда требуется создавать массивы, которые могут расти по мере необходимости. У языков программирования, таких как Java, есть коллекции. Это фреймворк с набором классов и интерфейсов. Он служит контейнером для группы элементов. Коллекции позволяют хранить, обновлять, извлекать набор элементов. Это помогает работать со структурами данных, такими как списки, наборы, деревья и карты. Список - это интерфейс платформы Collection. ArrayList и LinkedList - это два класса в структуре коллекций. Они реализуют интерфейс коллекции и интерфейс List. В этой статье обсуждается разница между 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 () используется для удаления элемента из списка. Обратитесь к программе ниже.

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

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

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

Что такое LinkedList?

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

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

Ключевое различие между ArrayList и LinkedList
Ключевое различие между ArrayList и LinkedList

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

Согласно указанной выше программе создается объект LinkedList. С помощью метода добавления элементы можно добавлять динамически. Элементы «A», «B», «C», «D» и «E» добавляются с использованием метода добавления. Метод remove используется для удаления элемента из списка. При передаче 4 методу remove буква в 4-м индексе, которая представляет собой «E», удаляется из списка. При повторении с использованием цикла 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 против LinkedList

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

Рекомендуем: