Diferența dintre matrice și liste de matrice

Diferența dintre matrice și liste de matrice
Diferența dintre matrice și liste de matrice

Video: Diferența dintre matrice și liste de matrice

Video: Diferența dintre matrice și liste de matrice
Video: Cum Vedem Diferenta Dintre Ouale Care au Embrion Si Cele Care NU Au - Oua Fertile Sau Nefertile? 2024, Iulie
Anonim

Matrice vs Arraylists

Matricele sunt structura de date cel mai frecvent utilizată pentru a stoca o colecție de elemente. Majoritatea limbajelor de programare oferă metode pentru a declara cu ușurință matrice și a accesa elementele din matrice. O listă de matrice poate fi văzută ca o matrice dinamică, care poate crește în dimensiune. Din acest motiv, programatorul nu trebuie să știe dimensiunea listei de matrice atunci când o definește.

Ce sunt matricele?

Afișat în figura 1, este o bucată de cod folosită de obicei pentru a declara și a atribui valori unui tablou. Figura 2 ilustrează cum ar arăta o matrice în memorie.

int valori[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
Index: 0 1 2 3 4

Figura 2: Matrice stocată în memorie

Deasupra codului, definește o matrice care poate stoca 5 numere întregi și acestea sunt accesate folosind indici de la 0 la 4. O proprietate importantă a unui tablou este că, întreaga matrice este alocată ca un singur bloc de memorie și fiecare element își primește propriul spațiu în matrice. Odată ce o matrice este definită, dimensiunea sa este fixă. Deci, dacă nu sunteți sigur de dimensiunea matricei în momentul compilării, ar trebui să definiți o matrice suficient de mare pentru a fi în partea de siguranță. Dar, de cele mai multe ori, vom folosi de fapt un număr mai mic de elemente decât am alocat. Deci, o cantitate considerabilă de memorie este de fapt irosită. Pe de altă parte, dacă „matricea suficient de mare” nu este de fapt suficient de mare, programul se va prăbuși.

Ce sunt Arraylists?

O listă de matrice poate fi văzută ca o matrice dinamică, care poate crește în dimensiune. Prin urmare, listele de matrice sunt ideale pentru a fi utilizate în situații în care nu cunoașteți dimensiunea elementelor necesare la momentul declarării. În Java, listele de matrice pot deține numai obiecte, nu pot deține în mod direct tipurile primitive (puteți pune tipurile primitive în interiorul unui obiect sau utilizați clasele wrapper ale tipurilor primitive). În general, listele de matrice sunt furnizate cu metode pentru a efectua inserarea, ștergerea și căutarea. Complexitatea de timp a accesării unui element este o(1), în timp ce inserarea și ștergerea au o complexitate de timp de o(n). În Java, listele de matrice pot fi parcurse folosind bucle foreach, iteratoare sau pur și simplu folosind indecși.

Care este diferența dintre Arrays și Arraylists

Chiar dacă matricele și listele de matrice sunt similare în sensul că ambele sunt folosite pentru a stoca colecții de elemente, diferă în modul în care sunt definite. Mărimea matricei trebuie să fie dată când o matrice este definită, dar puteți defini o listă de matrice fără a cunoaște dimensiunea reală. Puteți adăuga elemente la o listă de matrice după ce este definită și acest lucru nu este posibil cu matrice. Dar în Java, listele de matrice nu pot deține tipuri primitive, dar matricele pot fi folosite pentru a deține tipuri primitive. Dar dacă aveți nevoie de o structură de date care poate varia dimensiunea acesteia, lista de matrice ar fi cea mai bună alegere.

Recomandat: