Differenza tra matrici e arraylisti
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 |
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.