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 confronto | Vettore | Lista di array |
Flessibilità | L'array è una struttura di dati statici | ArrayList è una struttura di dati dinamica |
Primitivi | può memorizzare sia elementi primitivi che oggetti | può memorizzare solo oggetti dello stesso tipo. |
Tipo di sicurezza | L'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 valori | utilizzare per loop o per ogni loop per ottenere iterazione. | Utilizza il metodo iterator () per creare la raccolta |
Aggiunta di elementi | può inserire elementi in un array per assegnazione. | utilizzare il metodo add () per inserire elementi in un ArrayList |
Dimensione | multidimensionale | monodimensionale |
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ù -
- Java Vector vs ArrayList
- Matrice C # vs elenco
- C vs Java
- Vantaggi dell'array
- Iteratore in Java
- Vantaggi dei loop Python Esempio