Diferența dintre Array și ArrayList Diferența între
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 ArraylistArrayList 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ă.
- 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.
- 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- 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
- :
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
- Î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
- Array
ArrayList