Разлика между ArrayList и LinkedList

Ключова разлика - ArrayList vs LinkedList
 

Колекциите са полезни за съхранение на данни. В нормален масив размерът на масива е фиксиран. Понякога се изисква да се създадат масиви, които могат да растат според нуждите. Езици за програмиране като Java има колекции. Това е рамка с набор от класове и интерфейси. Той служи като контейнер за група елементи. Колекциите позволяват да се съхраняват, актуализират, извличат набор от елементи. Той помага да се работи със структури от данни като списъци, набори, дървета и карти. Списъкът е интерфейс на Collection Framework. 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 интерфейс. Следователно методите на интерфейса на списъка могат да се използват от ArrayList. За достъп до елементи се използва методът get (). Методът add () може да се използва за добавяне на елементи в списъка. Методът remove () се използва за премахване на елемент от списъка. Вижте по-долу програмата.

Фигура 01: Пример за ArrayList

Според горната програма се създава обект на ArrayList. Използвайки метода на добавяне, елементите могат да се добавят динамично. Елементите „A“, „B“, „C“, „D“ и „E“ се добавят чрез метода на добавяне. Методът за премахване се използва за премахване на елемент от списъка. При преминаване на 4 към метода за премахване, буквата в четвъртия индекс, която е „Е”, се премахва от списъка. При итерация през списъка с помощта на цикъл for, буквите A, B, C и D ще се отпечатват.

Какво е LinkedList?

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

Класът LinkedList разширява класа AbstractSequencesList и реализира интерфейса List. Следователно методите на List интерфейса могат да се използват от LinkedList. Методът get () може да се използва за достъп до елементи от списъка. Методът add () може да се използва за добавяне на елементи в списъка. Методът remove () се използва за премахване на елемент от списъка. Вижте по-долу програмата.

Фигура 02: Пример с LinkedList

Според горната програма се създава обект от LinkedList. Използвайки метода на добавяне, елементите могат да се добавят динамично. Елементите „A“, „B“, „C“, „D“ и „E“ се добавят чрез метода на добавяне. Методът за премахване се използва за премахване на елемент от списъка. Когато преминавате 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 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.“ Точката, налична тук