Diferența dintre Arrays și Arraylists

Anonim

Arrays vs Arraylists

Arrays sunt structura de date cea mai frecvent utilizată pentru stocarea unei colecții de elemente. Cele mai multe limbi de programare oferă metode pentru a declara cu ușurință matrice și elemente de acces în matrice. Un arrayist poate fi văzut ca o matrice dinamică, care poate crește în dimensiune. Din acest motiv, programatorul nu are nevoie să cunoască dimensiunea arrayistului atunci când o definește.

Ce sunt Arrays?

Afișată în figura 1, este o bucată de cod utilizată în mod obișnuit pentru a declara și a atribui valori unei matrice. Figura 2 prezintă modul în care ar arăta o matrice în memorie.

valorile int [5];

valori [0] = 100;

valori [1] = 101;

valori [2] = 102;

valori [3] = 103;

valori [4] = 104;

Figura 1: Cod pentru declararea și atribuirea valorilor unei matrice

100 101 102 103 104
3 4 Figura 2: Array stocat în memorie Deasupra codului, definește un matrice care poate stoca 5 numere întregi și acestea sunt accesate folosind indicii 0 până la 4. O proprietate importantă a unei matrice este aceea că, întreaga matrice este alocată ca un singur bloc de memorie și fiecare element își are propriul spațiu în matrice. Odată ce o matrice este definită, dimensiunea acesteia este fixă. Deci, dacă nu sunteți sigur de dimensiunea matricei la momentul compilării, va trebui să definiți o matrice suficient de mare pentru a fi în partea sigură. Dar, de cele mai multe ori, vom folosi de fapt mai puține elemente decât am alocat. Deci, o cantitate considerabilă de memorie este de fapt pierdută. Pe de altă parte, dacă "matricea suficientă" nu este destul de mare, programul s-ar prăbuși. Ce sunt arraiciștii?
Un arrayist poate fi văzut ca o matrice dinamică, care poate crește în dimensiune. Prin urmare, arrayliștii sunt ideali pentru a fi utilizați în situații în care nu cunoașteți mărimea elementelor necesare în momentul declarației. În Java, arraiiștii pot să dețină doar obiecte, nu pot să dețină în mod direct tipuri primitive (puteți pune tipurile primitive în interiorul unui obiect sau utilizați clasele de tip wrapper ale tipurilor primitive). În general, arrailistii sunt prevăzute cu metode de efectuare a inserției, ștergerii și căutării. Complexitatea timpului de accesare a unui element este o (1), în timp ce inserarea și ștergerea are o complexitate de timp a o (n). În Java, arraiiștii pot fi traversați folosind bucle foreach, iteratori sau pur și simplu folosind indexurile.

Care este diferența dintre Arrays și Arraylists

Chiar dacă arrays și arraylists sunt similare în sensul că ambele sunt folosite pentru a stoca colecții de elemente, ele diferă în modul în care sunt definite. Mărimea matricei trebuie dată atunci când este definită o matrice, dar puteți defini un arraylist fără a cunoaște dimensiunea reală. Puteți adăuga elemente într-un arraylist după ce este definit și acest lucru nu este posibil cu matrice.Dar în Java, arraiiștii nu pot deține tipuri primitive, dar array-urile pot fi folosite pentru a deține tipuri primitive. Dar dacă aveți nevoie de o structură de date care să-i poată varia dimensiunea, arrailistul ar fi cea mai bună alegere.