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