Differenza tra matrici e arraylisti

Anonim

Arrays vs Arraylists

Le matrici sono la struttura dati più comunemente utilizzata per memorizzare una raccolta di elementi. La maggior parte dei linguaggi di programmazione fornisce metodi per dichiarare facilmente gli array e gli elementi di accesso negli array. Un arraylist può essere visto come un array dinamico, che può crescere in dimensioni. A causa di questo motivo, il programmatore non ha bisogno di conoscere la dimensione del arraylist quando la definisce.

Quali sono le matrici?

Mostrato in figura 1, è un pezzo di codice tipicamente utilizzato per dichiarare e assegnare i valori a una matrice. La Figura 2 illustra come una matrice sarebbe simile alla memoria.

valori int [5];

valori [0] = 100;

valori [1] = 101;

valori [2] = 102;

valori [3] = 103;

valori [4] = 104;

Figura 1: Codice per dichiarare e assegnare i valori ad un array

100 101 102 103 104
Indice: 0 1 2 < 3 4 Figura 2: Array memorizzato nella memoria
Codice superiore, definisce un array che può memorizzare 5 interi e si accede utilizzando indici da 0 a 4. Una proprietà importante di una matrice è che, l'intera matrice viene assegnata come un singolo blocco di memoria e ogni elemento ottiene il proprio spazio nell'array. Una volta definita un'array, la sua dimensione è fissa. Quindi, se non siete sicuri circa la dimensione dell'array al tempo di compilazione, dovresti definire una matrice abbastanza grande da essere in sicurezza. Ma, la maggior parte delle volte, stiamo usando meno numero di elementi di quanto abbiamo assegnato. Così una notevole quantità di memoria è in realtà sprecata. D'altra parte, se la "matrice abbastanza grande" non è in realtà abbastanza grande, il programma si bloccherà.

Cosa sono gli arraylisti?

Un arraylist può essere visto come un array dinamico, che può crescere in dimensioni. Pertanto gli arrailisti sono ideali per essere utilizzati in situazioni in cui non si conoscono le dimensioni degli elementi richiesti al momento della dichiarazione. In Java, gli arraylists possono contenere solo oggetti, non possono contenere direttamente tipi primitivi (è possibile inserire i tipi primitivi all'interno di un oggetto o utilizzare le classi di wrapper dei tipi primitivi). Generalmente i arraylists sono dotati di metodi per l'inserimento, la cancellazione e la ricerca. La complessità temporale dell'accesso ad un elemento è o (1), mentre l'inserimento e l'eliminazione hanno una complessità temporale di o (n). In Java, gli arraylists possono essere attraversati utilizzando loop foreach, iteratori o semplicemente utilizzando gli indici.

Qual è la differenza tra Arrays e Arraylists

Anche se gli array e gli array sono simili nel senso che entrambi sono usati per memorizzare collezioni di elementi, differiscono in come sono definiti. La dimensione dell'array deve essere data quando è definita un'array, ma è possibile definire un arraylist senza conoscere la dimensione effettiva. È possibile aggiungere elementi ad un arraylist dopo che è definito e questo non è possibile con array.Ma in Java, gli arraylists non possono contenere tipi primitivi, ma gli array possono essere usati per contenere tipi primitivi. Ma se hai bisogno di una struttura di dati che può variare la sua dimensione, l'architetto sarebbe la scelta migliore.