Diferența dintre Array și ArrayList Diferența între

Anonim

Ce este Array și ArrayList?

Atât Array cât și ArrayList sunt structuri de date bazate pe index care sunt adesea folosite în programele Java. Din punct de vedere conceptual, ArrayList este susținut intern de matrice, însă înțelegerea diferenței dintre cele două este cheia pentru a deveni un mare dezvoltator Java. Este chiar pasul de bază pentru început, mai ales pentru începătorii care tocmai au început să codifice. În timp ce ambele sunt folosite pentru a stoca elemente în Java, care pot fi primitive sau obiecte, au o parte echitabilă de diferențe în ceea ce privește funcționalitatea și performanța. Diferența majoră dintre cele două este că matricea este statică, în timp ce ArrayList este dinamic în natură. Acest articol compară cele două aspecte diferite, astfel încât să puteți alege unul peste altul.

Diferenta majora si observabila intre cele doua structuri de date este aceea ca Array-ul este static in natura, ceea ce inseamna ca este un tip de date cu lungime fixa in timp ce diferenta dintre array si Arraylist

ArrayList este dinamic în natură, ceea ce înseamnă că este o structură de date cu lungime variabilă. În termeni tehnici, lungimea matricei nu poate fi modificată sau modificată după crearea obiectului Array. Acesta conține colecția secvențială de elemente de același tip de date. Arrays din Java funcționează diferit decât funcționează în C / C ++. ArrayList, pe de altă parte, se poate redimensiona însăși, iar matricele pot crește așa cum au nevoie. Deoarece este o structură de date dinamică, elementele pot fi adăugate și eliminate din listă.

  1. Generic

Nu puteți crea matrice de clase generice de interfețe în Java, astfel încât matricea și generica să nu meargă mână în mână, făcând imposibilă crearea Generic Array pentru un singur motiv de bază că matricea este covarianta în timp ce genericele sunt invariabile. În timp ce Array este o structură de date cu lungime fixă, ea conține obiecte din aceeași clasă sau primitive de tipul specific de date. Deci, dacă încercați să stocați alt tip de date diferit de cel specificat în timpul creării obiectului Array, aruncați pur și simplu "ArrayStoreException". ArrayList, pe de altă parte, sprijină Generics pentru a asigura siguranța tipului.

  1. Primitives

În ArrayList nu sunt permise tipuri primitive de date, cum ar fi int, double, long și char. Mai degrabă, obiectele și primitivele nu sunt considerate obiecte în Java. Arrays, pe de altă parte, pot deține primitive și obiecte din Java, deoarece este una dintre cele mai eficiente structuri de date din Java pentru stocarea obiectelor. Este un tip de date agregat care este proiectat să păstreze obiecte care pot fi de același tip sau de același tip.

Lungime
  1. Pentru a obține lungimea matricei, codul trebuie să acceseze atributul de lungime, deoarece trebuie să cunoaștem lungimea pentru a efectua operații pe Array.În timp ce ArrayList folosește metoda size () pentru a determina dimensiunea ArrayList, este destul de diferită de determinarea lungimii Array-ului. Atributul metodei size () determină numărul de elemente dintr-un ArrayList, care, la rândul său, este capacitatea ArrayList.

Exemplu

  1. :

clasa publică ArrayLengthTest {

public static void principal {String [] args) { ArrayList arrList = nou ArrayList ();

String [] items = {"One", "Two", "Three"};

pentru (String str: items) {

arrList. add (str);

}

int dimensiune = elemente. mărimea();

System. out. println (dimensiune);

}

}

Implementarea

Array este o componentă de programare nativă din Java care este creată dinamic și utilizează operatorul de atribuire pentru a ține elemente, în timp ce ArrayList utilizează atributul add (). ArrayList este o clasă din cadrul de colectare din Java care utilizează un set de metode specificate pentru a accesa și a modifica elementele. Dimensiunea unui ArrayList poate fi crescută sau scăzută dinamic. Elementele dintr-o matrice sunt stocate în locația de memorie contiguă, iar mărimea acesteia rămâne statică.

Performanța

  1. În timp ce ambele structuri de date oferă un fel de performanță similară cu ArrayList este susținută de Arrays, una are puțină marjă față de alta, mai ales în ceea ce privește timpul procesorului și utilizarea memoriei. Să presupunem că, dacă știți dimensiunea matricei, probabil că veți merge cu ArrayList. Cu toate acestea, iterarea peste un Array este un pic mai rapid decât iterarea peste un ArrayList. Dacă programul implică un număr mare de primitive, un matrice va funcționa semnificativ mai bine decât ArrayList, atât în ​​ceea ce privește timpul cât și memoria. Arrays sunt un limbaj de programare la nivel scăzut care poate fi utilizat în implementările de colectare. Cu toate acestea, performanța poate varia în funcție de operația pe care o efectuați.

Array Vs. Arraylist

  1. Array

ArrayList

Array este o structură de date cu lungime fixă ​​a cărei lungime nu poate fi modificată odată ce a fost creat un obiect array.

ArrayList este dinamic în natură, ceea ce înseamnă că se poate redimensiona ea însăși să crească când este necesar. Dimensiunea unei matrice rămâne statică în tot programul.
Dimensiunea unui ArrayList poate crește dinamic în funcție de încărcare și capacitate. Utilizează operatorul de atribuire pentru a stoca elementele.
Utilizează atributul add () pentru a insera elemente. Poate conține primitive, precum și obiecte de același tip sau tip de date diferite.
Primitivele nu sunt permise în ArrayList. Poate conține numai tipuri de obiecte. Arrays și Generics nu merg mână în mână.
Generic este permis în ArrayList. Arrays pot fi multidimensionale.
ArrayList este unic dimensional. Este o componentă de programare nativă în care elementele sunt stocate în locații de memorie contigue.
Este o clasă din cadrul colecțiilor Java unde obiectele nu sunt stocate niciodată în locații învecinate. Variabila lungime este utilizată pentru a determina lungimea matricei.
Metoda Size () este utilizată pentru a determina mărimea ArrayList. Are mai puțină memorie decât ArrayList pentru a stoca elemente sau obiecte specificate.
Are mai multă memorie decât Array-ul pentru a stoca obiecte. Iterarea peste o matrice este mai rapidă decât iterarea peste un ArrayList.
Iterarea peste un ArrayList este semnificativ mai lentă în termeni de performanță. Rezumat
În timp ce unii ar putea crede că implementarea unor tablouri într-un program poate obține rezultate mai rapide decât a face același lucru cu ArrayLists din simplul motiv că matricea este o structură de date de nivel scăzut, performanța poate varia în funcție de operațiunile pe care le- re performante. Ei bine, lungimea unui Array este fixă, în timp ce mărimea lui ArrayList poate fi crescută sau scăzută dinamic, astfel încât ArrayList are o margine puțin peste Array din punct de vedere al funcționalității. Cu toate acestea, în ciuda diferențelor, aceștia împărtășesc și unele asemănări. Ambele sunt structuri de date bazate pe indexuri în Java, care vă permit să stocați obiecte și ambele permit valori nulă, precum și duplicate. Ei bine, dacă știți dimensiunea obiectelor în prealabil, ar trebui să mergeți cu o matrice și, dacă nu sunteți sigur de dimensiune, mergeți cu ArrayList.