Diferența cheie - ArrayList vs LinkedList
Colecțiile sunt utile pentru stocarea datelor. Într-o matrice normală, dimensiunea matricei este fixă. Uneori este necesar să creați matrice care pot crește după cum este necesar. Limbaje de programare precum Java are colecții. Este un cadru cu un set de clase și interfețe. Acesta servește drept container pentru un grup de elemente. Colecțiile permit stocarea, actualizarea, recuperarea setului de elemente. Ajută la lucrul cu structuri de date, cum ar fi liste, seturi, copaci și hărți. Lista este o interfață a cadrului de colecție. ArrayList și LinkedList sunt două clase în cadrul colecțiilor. Acestea implementează interfața de colectare și interfața List. Acest articol discută diferența dintre ArrayList și LinkedList. ArrayList este o clasă care extinde AbstractList și implementează interfața List, care utilizează intern o matrice dinamică pentru a stoca elemente de date. LinkedList este o clasă care extinde AbstractSequentialList și implementează interfețele List, Deque și Queue, care utilizează intern o listă dublă legată pentru a stoca elemente de date. Aceasta este diferența cheie între ArrayList și LinkedList.
CUPRINS
1. Prezentare generală și diferența cheie
2. Ce este ArrayList
3. Ce este LinkedList
4. Asemănări între ArrayList și LinkedList
5. Comparație side by side - ArrayList vs LinkedList în formă tabelară
6. Rezumat
Ce este ArrayList?
Clasa ArrayList este utilizată pentru a crea tablouri dinamice. Spre deosebire de un tablou normal, dimensiunea unui tablou dinamic nu este fixă. Un obiect creat folosind clasa ArrayList este permis să stocheze un set de elemente în listă. Capacitatea crește automat, astfel încât programatorul poate adăuga elemente pe listă. Clasa ArrayList extinde clasa AbstractList care implementează interfața List. Prin urmare, metodele interfeței List pot fi utilizate de ArrayList. Pentru a accesa elemente, se folosește metoda get (). Metoda add () poate fi utilizată pentru a adăuga elemente la listă. Metoda remove () este utilizată pentru a elimina un element din listă. Consultați programul de mai jos.
Figura 01: Exemplu de ArrayList
Conform programului de mai sus, este creat un obiect al ArrayList. Folosind metoda add, elementele pot fi adăugate dinamic. Elementele „A”, „B”, „C”, „D” și „E” sunt adăugate folosind metoda add. Metoda de eliminare este utilizată pentru a elimina un element din listă. Când treceți 4 la metoda de eliminare, litera din al patrulea index care este „E” este eliminată din listă. Când iterați prin listă folosind bucla for, literele A, B, C și D se vor imprima.
Ce este LinkedList?
Similar cu ArrayList, LinkedList este utilizat pentru a stoca elemente de date în mod dinamic. Un obiect creat utilizând clasa LinkedList este permis să stocheze un set de elemente în listă. Capacitatea crește automat, astfel încât programatorul poate adăuga elemente pe listă. Utilizează intern o listă dublă legată pentru a stoca date. Într-o listă dublă legată, datele sunt stocate ca noduri. Fiecare nod conține două legături. Primul link indică nodul anterior. Următorul link indică următorul nod din secvență.
Clasa LinkedList extinde clasa AbstractSequentialList și implementează interfața List. Prin urmare, metodele interfeței List pot fi utilizate de LinkedList. Metoda get () poate fi utilizată pentru a accesa elementele listei. Metoda add () poate fi utilizată pentru a adăuga elemente la listă. Metoda remove () este utilizată pentru a elimina un element din listă. Consultați programul de mai jos.
Figura 02: Exemplu cu LinkedList
Conform programului de mai sus, este creat un obiect din LinkedList. Folosind metoda add, elementele pot fi adăugate dinamic. Elementele „A”, „B”, „C”, „D” și „E” sunt adăugate folosind metoda add. Metoda de eliminare este utilizată pentru a elimina un element din listă. Când treceți 4 la metoda de eliminare, litera din al patrulea index care este „E” se elimină din listă. Când iterați folosind bucla for, literele A, B, C și D se vor imprima.
Care sunt asemănările dintre ArrayList și LinkedList?
- Atât ArrayList, cât și LinkedList implementează interfața List.
- Atât ArrayList, cât și LinkedList pot conține elemente duplicat.
- Atât ArrayList, cât și LinkedList mențin ordinea de inserare.
Care este diferența dintre ArrayList și LinkedList?
Difuzarea articolului din mijloc înainte de tabel
ArrayList vs LinkedList |
|
ArrayList este o clasă care extinde AbstractList și implementează interfața List care utilizează intern o matrice dinamică pentru a stoca elemente de date. | LinkedList este o clasă care extinde AbstractSequentialList și implementează interfețe List, Deque, Queue, care utilizează intern o listă dublă legată pentru a stoca elemente de date. |
Accesarea elementelor | |
Accesarea elementelor ArrayList este mai rapidă decât a LinkedList. | Accesarea elementelor LinkedList este mai lentă decât a ArrayList. |
Elemente manipulatoare | |
Manipularea elementelor ArrayList este mai lentă decât a LinkedList. | Manipularea elementelor LinkedList este mai rapidă decât a ArrayList. |
Comportament | |
ArrayList funcționează ca o listă. | LinkedList funcționează ca o listă și o coadă. |
Rezumat - ArrayList vs LinkedList
Cadrul de colectare permite lucrul cu structuri de date, cum ar fi liste, arbori, hărți și seturi. Lista este o interfață a cadrului de colectare. Acest articol a discutat despre diferența dintre ArrayList și LinkedList. ArrayList este o clasă care extinde AbstractList și implementează interfața List care utilizează intern o matrice dinamică pentru a stoca elemente de date. LinkedList este o clasă care extinde AbstractSequentialList și implementează interfețe List, Deque, Queue, care utilizează intern o listă dublă legată pentru a stoca elemente de date. Aceasta este diferența dintre ArrayList și LinkedList.