Differenze tra Array vs ArrayList

Array e ArrayList sono importanti strutture di dati, che vengono utilizzate per memorizzare un numero di elementi ed elaborarli. Ma ci sono differenze chiave tra loro. Un buon programmatore deve essere consapevole dei confronti tra loro in modo che lui o lei possa effettivamente decidere su cosa usare quando e perché.

Vettore

L'array è una struttura di dati in cui è possibile memorizzare elementi di una determinata dimensione di un tipo simile. Ad esempio array di tipo intero, array di tipo stringa, ecc. Pertanto, un array normale in Java è una struttura di dati statica.

Lista di array

Un ArrayList è una struttura di dati dinamica, in cui è possibile aggiungere e rimuovere elementi dall'elenco. Quindi, se non si è sicuri di quanti elementi ci saranno nell'array, questa struttura dinamica di dati vi farà risparmiare.

In questo articolo, discuteremo le differenze tra Array e ArrayList in Java.

Esempio per comprendere sia Array che ArrayList

L'array è una struttura di dati in cui è possibile memorizzare elementi di una determinata dimensione fissa di un tipo simile.

Esempio di codice:

Creiamo una matrice di cinque elementi di tipo int. Esamineremo attraverso di essi usando for loop

Un ArrayList è una struttura di dati dinamica, in cui è possibile aggiungere e rimuovere elementi dall'elenco. Quindi, se non si è sicuri di quanti elementi ci saranno nell'array, questa struttura dinamica di dati vi farà risparmiare.

Esempio di codice:

Differenze testa a testa tra matrice e matrice (infografica)

Di seguito sono riportate le principali differenze tra Array e ArrayList:

Differenze chiave tra Array e ArrayList in Java

1. Flessibilità

Un array è una struttura di dati statica. Una volta definita la dimensione dell'array, non è possibile modificare il valore della sua dimensione. Pertanto, un array normale in Java è una struttura di dati statica, poiché la dimensione iniziale dell'array è fissa.

D'altra parte, ArrayList ha dimensioni flessibili. Puoi aggiungere o rimuovere elementi dall'elenco secondo la tua convenienza. Durante la rimozione di elementi da ArrayList, stiamo assegnando null all'indice il cui valore viene rimosso e l'intero valore dell'indice viene automaticamente declassato di uno. Simile vale anche per l'aggiunta.

2. Attuazione

Un array è una struttura di dati in cui è possibile memorizzare elementi di una determinata dimensione fissa di un tipo simile. Un ArrayList è una struttura di dati dinamica, in cui è possibile aggiungere e rimuovere elementi dall'elenco. In realtà, ArrayList è implementato utilizzando un array in Java. È necessario importare il pacchetto java.util.ArrayList per utilizzare il metodo ArrayList () per creare l'oggetto ArrayList.

Esempio di frammento di codice di array

Esempio di codice frammento di ArrayList

3. Prestazioni

Sebbene ArrayList sia sostanzialmente basato su Array, vediamo differenze di prestazioni tra di loro. Ciò è dovuto al tipo di archiviazione e alla funzionalità di ArrayList. Vediamo differenze di prestazioni in termini di tempo della CPU e utilizzo della memoria. A seconda delle operazioni che si stanno eseguendo, le prestazioni di Array e ArrayList varieranno:

ArrayList richiede più memoria per scopi di archiviazione rispetto a un array. Questo perché la memorizzazione di oggetti simili richiede più memoria rispetto alla memorizzazione di variabili di tipo primitivo simili.

operazione resize (): ArrayList utilizza il ridimensionamento automatico, in cui viene creato un array temporaneo per copiare elementi dal vecchio array in un nuovo array. Questo rallenta le prestazioni complessive.

operazione get (): per l'accesso basato sull'indice, sia ArrayList che l'array hanno le stesse prestazioni, poiché ciò richiede un tempo costante.

operazione add (): qui vediamo la differenza chiave come l'aggiunta di un nuovo elemento in ArrayList richiede due operazioni internamente: Copia e ridimensiona. L'aggiunta in ArrayList crea un nuovo array in background e copia elementi dal vecchio a un nuovo array.

4. Primitivi

Un array può memorizzare sia tipi di elementi primitivi che oggetti. D'altra parte, un ArrayList non può memorizzare tipi primitivi; può solo memorizzare oggetti dello stesso tipo.

Quindi come possiamo memorizzare valori interi in una ArrayList?

La risposta è la capacità di autoboxing di JVM. L'autoboxing converte internamente la primitiva nei suoi oggetti equivalenti.

Per esempio:

Quindi, l'autoboxing esegue internamente le cose di seguito

5. Digitare Safety

Un array può memorizzare solo elementi di un tipo simile. Se si desidera memorizzare diversi tipi di elementi in un array diverso da quelli specificati, verrà generato ArrayStoreException durante la creazione dell'oggetto di tale array. Questa eccezione verrà generata in fase di runtime, in quanto l'array non è di tipo sicuro quindi; non esiste alcun controllo in fase di compilazione per l'array.

Per esempio:

D'altra parte, ArrayList è sicuro per i tipi, in quanto garantisce la sicurezza dei tipi da parte dei generici. Generics consente al compilatore di verificare se non vi è alcuna discrepanza nel tipo durante la compilazione.

6. Iterazione dei valori

ArrayList utilizza il metodo iterator () per creare la raccolta. Quindi usando un ciclo while attraverseremo gli elementi uno per uno e stamperemo i valori.

D'altra parte, possiamo usare per loop o per ogni loop per iterare attraverso un array.

7. Lunghezza

In molti casi d'uso, potrebbe essere necessario ottenere le dimensioni dell'intero array. Nel caso di Arraylist, questo calcolo è abbastanza semplice. È possibile ottenere una lunghezza di ArrayList utilizzando il metodo size ().

D'altra parte, ogni oggetto array ha la variabile length, che restituisce la lunghezza dell'array.

Per esempio:

8. Aggiunta di elementi

L'aggiunta o l'inserimento è possibile in ArrayList in quanto è una struttura di dati dinamica. Possiamo usare il metodo add () per inserire elementi in una ArrayList dopo la sua creazione.

D'altra parte, la dimensione dell'array è fissa. Tuttavia, possiamo inserire elementi in un array per assegnazione. Non possiamo aggiungere dinamicamente nuovi elementi oltre le dimensioni di un array.

Per esempio:

9. Dimensione

ArrayList è monodimensionale. Considerando che, l'array può essere multidimensionale.

Per esempio:

Array and ArrayList - Tabella di confronto

Discutiamo il miglior confronto tra Array e ArrayList

Base di confrontoVettoreLista di array
FlessibilitàL'array è una struttura di dati staticiArrayList è una struttura di dati dinamica
Primitivipuò memorizzare sia elementi primitivi che oggettipuò memorizzare solo oggetti dello stesso tipo.
Tipo di sicurezzaL'array può memorizzare solo elementi di un tipo simile. Altrimenti, genererà ArrayStoreException durante la creazione dell'oggetto di tale array.ArrayList è sicuro per i tipi, in quanto garantisce la sicurezza dei tipi da parte dei generici.
Iterazione dei valoriutilizzare per loop o per ogni loop per ottenere iterazione.Utilizza il metodo iterator () per creare la raccolta
Aggiunta di elementipuò inserire elementi in un array per assegnazione.utilizzare il metodo add () per inserire elementi in un ArrayList

Dimensionemultidimensionalemonodimensionale

Conclusion-Array vs ArrayList

Tutto ciò riguarda l'importante distinzione tra un array e un ArrayList in Java. La principale distinzione vitale da tenere a mente è che l'array è statico mentre ArrayList è dinamico in natura. Principalmente basato su questa distinzione, è necessario utilizzare un array se si riconoscono le dimensioni future, se non si è sicuri, utilizzare semplicemente ArrayList.

Articoli consigliati

Questa è una guida per Array vs ArrayList. Qui discutiamo le differenze chiave tra array e array con infografica, esempi e tabella di confronto. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Java Vector vs ArrayList
  2. Matrice C # vs elenco
  3. C vs Java
  4. Vantaggi dell'array
  5. Iteratore in Java
  6. Vantaggi dei loop Python Esempio

Categoria: