Diferența dintre ArrayList și LinkedList

Diferența cheie - ArrayList vs LinkedList
 

Colecțiile sunt utile pentru stocarea datelor. Într-o matrice normală, dimensiunea matricei este fixă. Uneori, este necesară crearea de rețele care pot crește după cum este necesar. Limbile de programare, cum ar fi Java, au colecții. Acesta este un cadru cu un set de clase și interfețe. Acesta servește ca un container pentru un grup de elemente. Colecțiile permit stocarea, actualizarea, preluarea setului de elemente. Ajută la lucrul cu structuri de date cum ar fi liste, seturi, arbori și hărți. Lista este o interfață a cadrului de colectare. ArrayList și LinkedList sunt două clase în cadrul colecțiilor. Ele 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 stocarea elementelor de date. LinkedList este o clasă care extinde AbstractSequentialList și implementează interfețe List, Deque și Queue, care folosesc intern o listă dublu legată pentru a stoca elementele de date. Asta este diferența cheie între ArrayList și LinkedList.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este ArrayList
3. Ce este LinkedList
4. Asemănări între ArrayList și LinkedList
5. Comparație comparativă comparativă - ArrayList vs LinkedList în formă tabulară
6. rezumat

Ce este ArrayList?

Clasa ArrayList este utilizată pentru a crea rețele dinamice. Spre deosebire de o matrice normală, dimensiunea unei matrice dinamice nu este fixată. Un obiect creat folosind clasa ArrayList are dreptul să stocheze un set de elemente în listă. Capacitatea crește automat, astfel încât programatorul poate adăuga elemente în listă. Clasa ArrayList extinde clasa AbstractList care implementează interfața List. Prin urmare, metodele din interfața List pot fi utilizate de ArrayList. Pentru a accesa elementele, metoda get () este utilizată. Metoda add () poate fi utilizată pentru a adăuga elemente în listă. Metoda remove () este folosită 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 din ArrayList. Utilizând metoda de adăugare, elementele pot fi adăugate dinamic. Elementele "A", "B", "C", "D" și "E" sunt adăugate folosind metoda de adăugare. Metoda de ștergere este utilizată pentru a elimina un element din listă. Când treceți 4 la metoda de eliminare, litera din indexul 4 care este "E" este eliminată din listă. Când iterați prin listă folosind buclă for, literele A, B, C și D vor fi imprimate.

Ce este LinkedList?

Similar cu ArrayList, LinkedList este utilizat pentru stocarea dinamică a elementelor de date. Un obiect creat folosind clasa LinkedList este permis să stocheze un set de elemente în listă. Capacitatea crește automat, astfel încât programatorul poate adăuga elemente în listă. Utilizează intern o listă dublu legată pentru a stoca date. Într-o listă dublu legată, datele sunt stocate ca noduri. Fiecare nod conține două linkuri. Prima legătură 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 de interfață List pot fi utilizate de LinkedList. Metoda get () poate fi utilizată pentru a accesa elementele din listă. Metoda add () poate fi utilizată pentru a adăuga elemente în listă. Metoda remove () este folosită 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 al LinkedList. Utilizând metoda de adăugare, elementele pot fi adăugate dinamic. Elementele "A", "B", "C", "D" și "E" sunt adăugate folosind metoda de adăugare. Metoda de ștergere este utilizată pentru a elimina un element din listă. Când treceți 4 la metoda de eliminare, litera din indexul 4 care este "E" se elimină din listă. Când iterați utilizând buclă for, literele A, B, C și D vor fi imprimate.

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 duplicate.
  • Atât ArrayList cât și LinkedList mențin ordinea de inserare.

Care este diferența dintre ArrayList și LinkedList?

ArrayList vs LinkedList

ArrayList este o clasă care extinde AbstractList și implementează interfața List care utilizează intern o matrice dinamică pentru a stoca elementele de date. LinkedList este o clasă care extinde AbstractSequentialList și implementează interfețe List, Deque, Queue, care utilizează intern o listă dublu legată pentru a stoca elementele de date.
 Accesarea elementelor
Accesarea elementelor din ArrayList este mai rapidă decât într-un LinkedList. Accesarea elementelor din LinkedList este mai lentă decât a unui ArrayList.
Manipularea elementelor
Manipularea elementelor din ArrayList este mai lentă decât a unui LinkedList. Elementele de manipulare ale LinkedList sunt mai rapide decât dintr-un 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 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 stocarea elementelor de date. LinkedList este o clasă care extinde AbstractSequentialList și implementează interfețe List, Deque, Queue, care utilizează intern o listă dublu legată pentru a stoca elementele de date. Aceasta este diferența dintre ArrayList și LinkedList.

Referinţă:

1.Introducere la lista legată Structura de date Tutorial Studytonight. Disponibil aici
2. "LinkedList în Java - javatpoint".,Punctul, Disponibil aici
3. "Clasa Java ArrayList - javatpoint". Punctul, Disponibil aici