Ключова разлика - ArrayList срещу LinkedList
Колекциите са полезни за съхранение на данни. В нормален масив размерът на масива е фиксиран. Понякога се изисква създаване на масиви, които могат да растат според нуждите. Езиците за програмиране като Java имат колекции. Това е рамка с набор от класове и интерфейси. Той служи като контейнер за група елементи. Колекциите позволяват да се съхраняват, актуализират, извличат набор от елементи. Помага за работа със структури от данни като списъци, набори, дървета и карти. Списъкът е интерфейс на Collection 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" се добавят по метода на добавяне. Методът remove се използва за премахване на елемент от списъка. Когато предавате 4 на метода за премахване, буквата в четвъртия индекс, която е „E“, се премахва от списъка. При итерация през списъка с помощта на цикъла for, буквите A, B, C и D ще се отпечатат.
Какво е LinkedList?
Подобно на ArrayList, LinkedList се използва за динамично съхраняване на елементи от данни. Обект, създаден с клас LinkedList, има право да съхранява набор от елементи в списъка. Капацитетът се увеличава автоматично, така че програмистът може да добавя елементи към списъка. Той вътрешно използва двойно свързан списък за съхраняване на данни. В двойно свързан списък данните се съхраняват като възли. Всеки възел съдържа две връзки. Първата връзка сочи към предишния възел. Следващата връзка сочи към следващия възел в последователността.
Класът LinkedList разширява класа AbstractSequentialList и реализира интерфейса List. Следователно методите на интерфейса на списъка могат да се използват от LinkedList. Методът get () може да се използва за достъп до елементи от списъка. Методът add () може да се използва за добавяне на елементи към списъка. Методът remove () се използва за премахване на елемент от списъка. Вижте програмата по-долу.
Фигура 02: Пример с LinkedList
Според горната програма се създава обект на LinkedList. Използвайки метода add, елементите могат да се добавят динамично. Елементите "A", "B", "C", "D" и "E" се добавят по метода на добавяне. Методът remove се използва за премахване на елемент от списъка. Когато предавате 4 на метода за премахване, буквата в четвъртия индекс, която е „E“, се премахва от списъка. При итерация с помощта на цикъла for, буквите A, B, C и D ще се отпечатат.
Какви са приликите между ArrayList и LinkedList?
- И ArrayList, и LinkedList реализират списъчен интерфейс.
- Както 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.