Differenza tra List e ArrayList in Java

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 15 Maggio 2024
Anonim
Java list vs arraylist
Video: Java list vs arraylist

Contenuto


List e ArrayList sono i membri del framework Collection. Elenco è una raccolta di elementi in una sequenza in cui ogni elemento è un oggetto e gli elementi sono accessibili da lì posizione (indice). ArrayList crea una matrice dinamica di oggetti che aumenta o riduce di dimensioni ogni volta che è necessario. La differenza principale tra List e ArrayList è quella Elenco è un'interfaccia e Lista di array è una classe. Studiamo la differenza tra Elenco e ArrayList con l'aiuto della tabella di confronto mostrata di seguito.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoElencoLista di array
Di baseL'elenco è un'interfacciaArrayList è una classe di raccolta standard.
SintassiElenco delle interfacceclass ArrayList
Estendere / ImplementareL'interfaccia elenco estende il Framework di raccolta.ArrayList estende AbstractList e implementa List Interface.
Spazio dei nomiSystem.Collections.Generic.System.Collections.
LavoroViene utilizzato per creare un elenco di elementi (oggetti) associati ai loro numeri di indice.ArrayList viene utilizzato per creare un array dinamico che contiene oggetti.


Definizione dell'elenco

L'elenco è un interfaccia che estende il Collezione struttura. L'interfaccia Elenco descrive la raccolta di elementi che sono disposti in sequenza. L'interfaccia dell'elenco è implementata dalle seguenti classi di raccolta standard come ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. L'interfaccia dell'elenco ha elementi associati ai loro numeri di indice. È possibile accedere a un elemento nell'elenco in base alla sua posizione (indice) nell'elenco. Un elenco creato utilizzando l'interfaccia Elenco inizia con un indice basato su zero.

Oltre ai metodi ereditati dal framework Collection, l'interfaccia List definisce anche alcuni metodi propri. I metodi aggiunti dall'interfaccia Elenco sono, aggiungi (int, E) e addAll (int, Collection). Questi metodi aggiungono un elemento all'elenco in base al loro indice. I metodi all'interno dell'elenco possono generare un'eccezione simile UnsupportedOperationException se il metodo non è in grado di modificare l'elenco. Quando un oggetto in un elenco è incompatibile con un altro oggetto nell'elenco, quindi ClassCastException viene generato. Gli elementi null non sono consentiti nell'elenco se si tenta di inserire un oggetto null nell'elenco, NullPointerException viene lanciato.


È possibile ottenere un elemento dall'elenco utilizzando ottenere() metodo. È possibile impostare il valore di un elemento nell'elenco usando impostato() metodo. È inoltre possibile ottenere l'elenco secondario dall'elenco utilizzando un metodo sottolista (). Diventa conveniente operare sull'elenco secondario anziché su un elenco.

Definizione di ArrayList

Una delle classi di raccolta standard è ArrayList che si estende AbstractList classe e implementa anche il Elenco interfaccia. La classe ArrayList viene utilizzata per creare array dinamici che crescono e si riducono ogni volta che è necessario. L'elenco creato utilizzando la classe ArrayList non è altro che l'array di oggetti. In Java, l'array standard ha una lunghezza fissa, quindi è necessario conoscere in anticipo la dimensione dell'array. Tuttavia, potrebbe non essere possibile conoscere la lunghezza dell'array necessaria fino al momento dell'esecuzione. Quindi, il framework Collection ha introdotto la classe ArrayList per superare questo problema.

ArrayList ha costruttori che creano l'array con la sua capacità iniziale. Sebbene la capacità dell'oggetto della classe ArrayList aumenti automaticamente quando gli elementi vengono aggiunti all'array, è comunque possibile aumentare manualmente la capacità dell'oggetto di ArrayList usando il metodo ensureCapacity (). È preferibile aumentare inizialmente la capacità dell'array anziché riallocare successivamente la memoria. Perché la riallocazione è più costosa dell'allocazione della memoria in una sola volta.

  1. Una delle differenze più importanti tra List e ArrayList è che l'elenco è un interfaccia e ArrayList è una raccolta standard classe.
  2. L'interfaccia dell'elenco estende il Collezione framework considerando che ArrayList si estende AbstractList Classe e attua Elenco interfacce.
  3. Lo spazio dei nomi per l'interfaccia Elenco è System.Collection.Generic mentre lo spazio dei nomi per ArrayList è System.Collection.
  4. L'interfaccia Elenco crea una raccolta di elementi che è memorizzata in una sequenza e sono identificati o accessibili dal loro numero indice. D'altra parte, ArrayList crea una matrice di oggetti in cui la matrice può crescere dinamicamente quando richiesto.

Conclusione:

ArrayList risolve il problema di un array statico in Java standard, vale a dire che l'array non può aumentare di dimensioni una volta creato. Quando un array viene creato utilizzando ArrayList, viene creato un array dinamico che può aumentare e ridimensionarsi quando necessario. La classe Collection standard ArrayList estende l'interfaccia Elenco.