Diferențele dintre Array și ArrayList

Array și ArrayList sunt structuri de date importante, care sunt utilizate pentru a stoca o serie de elemente și pentru a le prelucra. Există însă diferențe cheie între ele. Un programator bun trebuie să fie conștient de comparațiile dintre ei, astfel încât el sau ea să poată decide în mod eficient ce să folosească când și de ce.

mulțime

Matricea este o structură de date în care putem stoca elemente de o dimensiune dată de un tip similar. De exemplu, un tablou de tip întreg, un tip de șir, etc. Prin urmare, un tablou normal în Java este o structură de date statică.

ArrayList

O listă ArrayList este o structură de date dinamică, în care elementele pot fi adăugate și eliminate din listă. Așadar, dacă nu sunteți sigur despre câte elemente vor exista în tabloul dvs., această structură de date dinamică vă va salva.

În acest articol, vom discuta despre diferențele dintre Array și ArrayList în java.

Exemplu pentru a înțelege atât Array cât și ArrayList

Matricea este o structură de date în care putem stoca elemente cu o dimensiune fixă ​​dată de un tip similar.

Exemplu de cod:

Să creăm o serie de cinci elemente de tip int. Vom itera prin ele folosind pentru buclă

O listă ArrayList este o structură de date dinamică, în care elementele pot fi adăugate și eliminate din listă. Așadar, dacă nu sunteți sigur despre câte elemente vor exista în tabloul dvs., această structură de date dinamică vă va salva.

Exemplu de cod:

Diferențe de la cap la cap între Array și ArrayList (Infografie)

Mai jos sunt prezentate diferențele de top între Array și ArrayList:

Diferențe cheie între Array și ArrayList în Java

1. Flexibilitate

Un tablou este o structură de date statică. După ce ați definit dimensiunea tabloului, nu puteți modifica valoarea dimensiunii acestuia. Prin urmare, un tablou normal în Java este o structură de date statică, deoarece dimensiunea inițială a tabloului este fixă.

Pe de altă parte, ArrayList are dimensiuni flexibile. Puteți adăuga sau elimina elemente din listă, în funcție de comoditatea dvs. În timp ce eliminăm elementele din ArrayList, atribuim nul indexului a cărui valoare este înlăturată, iar întreaga valoare a indexului este redusă automat cu unul. Similar este valabil și pentru adăugare.

2. Implementare

Un tablou este o structură de date în care putem stoca elemente de o anumită dimensiune fixă ​​de un tip similar. O listă ArrayList este o structură de date dinamică, în care elementele pot fi adăugate și eliminate din listă. De fapt, ArrayList este implementat folosind un tablou în Java. Trebuie să importați pachetul java.util.ArrayList pentru a utiliza metoda ArrayList () pentru a crea obiectul ArrayList.

Exemplu de fragment de cod de Array

Exemplu de cod Snippet of ArrayList

3. Performanță

Cu toate că ArrayList se bazează practic pe Array, vedem diferențe de performanță între ele. Acest lucru se datorează tipului de stocare și funcționalității ArrayList. Vedem diferențe de performanță în ceea ce privește timpul procesorului și utilizarea memoriei. În funcție de operațiile pe care le efectuați, performanțele Array și ArrayList vor varia:

ArrayList necesită mai multă memorie în scopuri de stocare în comparație cu un tablou. Acest lucru se datorează faptului că stocarea obiectelor similare necesită mai multă memorie decât stocarea variabilelor similare de tip primitiv.

redimensionare () operație: ArrayList utilizează redimensionarea automată, unde este creat un tablou temporar pentru a copia elemente din vechiul tablou într-un nou tablou. Acest lucru încetinește performanța generală.

operație get (): Pentru acces pe bază de index, atât ArrayList, cât și matricea au aceeași performanță, deoarece acest lucru necesită timp constant.

add () operație: Aici vedem diferența cheie, deoarece adăugarea unui element nou în ArrayList necesită două operații pe plan intern: Copiere și redimensionare. Adăugarea în ArrayList creează un nou tablou în fundal și copiază elemente de la vechi la un nou tablou.

4. Primitive

Un tablou poate stoca atât tipuri de elemente primitive, cât și obiecte. Pe de altă parte, un ArrayList nu poate stoca tipuri primitive; acesta poate stoca doar obiecte de același tip.

Atunci cum putem stoca valorile întregi într-un ArrayList?

Răspunsul este capacitatea de autoboxing a JVM. Autoboxing-ul intern transformă primitivul în obiectele sale echivalente.

De exemplu:

Prin urmare, autoboxingul intern efectuează mai jos lucrurile

5. Tastați siguranța

Un tablou poate stoca numai elemente de tip similar. Dacă doriți să stocați diferite tipuri de elemente într-un tablou, altele decât cele specificate, va arunca ArrayStoreException în timp ce creează obiectul respectivului tablou. Această excepție va fi aruncată la runtime, deoarece matricea nu este sigură de tip; nu există nicio verificare în timp de compilare pentru tablă.

De exemplu:

Pe de altă parte, ArrayList este sigur de tip, deoarece asigură siguranța tipului prin generice. Generics permite compilatorului să verifice dacă există o nepotrivire de tip în timpul compilării.

6. Iterarea valorilor

ArrayList utilizează metoda iterator () pentru a crea colecția. Apoi folosind o buclă de timp, vom traversa elementele unul câte unul și vom tipări valorile.

Pe de altă parte, putem folosi pentru o buclă sau pentru fiecare buclă pentru a itera printr-un tablou.

7. Lungimea

În multe dintre cazurile de utilizare, este posibil să fie nevoie să obținem dimensiunea întregului tablou. În cazul lui Arraylist, acest calcul este destul de simplu. Putem obține o lungime de ArrayList folosind metoda size ().

Pe de altă parte, fiecare obiect de matrice are variabila lungime, care returnează lungimea tabloului.

De exemplu:

8. Adăugarea de elemente

Adăugarea sau inserarea este posibilă în ArrayList, deoarece este o structură de date dinamică. Putem folosi metoda add () pentru a insera elemente într-un ArrayList după crearea acesteia.

Pe de altă parte, dimensiunea tabloului este fixă. Cu toate acestea, putem insera elemente într-un tablou prin atribuire. Nu putem adăuga în mod dinamic elemente noi peste dimensiunea unui tablou.

De exemplu:

9. Dimensiunea

ArrayList este unidimensional. Întrucât, tabloul poate fi multidimensional.

De exemplu:

Array and ArrayList - tabel de comparație

Să discutăm comparația de top dintre Array și ArrayList

Bazele comparațieimulțimeArrayList
FlexibilitateMatricea este o structură de date staticeArrayList este o structură dinamică a datelor
primitivepoate stoca atât elemente primitive, cât și tipuri de obiectepoate stoca doar obiecte de același tip.
Tip siguranțăMatricea poate stoca numai elemente de tip similar. În caz contrar, va arunca ArrayStoreException în timp ce creează obiectul respectivului tablou.ArrayList este sigur de tip, deoarece asigură siguranța tipului prin generice.
Iterarea valorilorutilizați pentru buclă sau pentru fiecare buclă pentru a realiza iterarea.Utilizează metoda iterator () pentru a crea colecția
Adăugarea de elementepoate insera elemente într-un tablou prin atribuire.utilizați metoda add () pentru a insera elemente într-un ArrayList

Dimensiunemulti-dimensionalesingle-dimensională

Concluzie-Array vs ArrayList

Aceasta se referă la distincția importantă între un tablou și ArrayList în Java. Cea mai importantă distincție vitală pe care trebuie să o țineți cont este că matricea este statică, în timp ce ArrayList este de natură dinamică. Pe baza acestei distincții, trebuie să utilizați un tablou dacă recunoașteți dimensiunile care urmează, dacă nu sunteți sigur, atunci utilizați pur și simplu ArrayList.

Articole recomandate

Acesta este un ghid pentru Array vs ArrayList. Aici vom discuta despre diferențele cheie Array vs ArrayList cu infografie, exemple și tabel de comparație. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Java Vector vs ArrayList
  2. C # Array vs List
  3. C vs Java
  4. Avantajele Array
  5. Iterator în Java
  6. Beneficiile buclelor Python | Exemplu