Differenza tra ArrayList e LinkedList

Differenza chiave - ArrayList vs Lista collegata
 

Le raccolte sono utili per la memorizzazione dei dati. In una matrice normale, la dimensione dell'array è fissa. A volte è necessario creare array che possano crescere secondo necessità. I linguaggi di programmazione come Java hanno collezioni. È un framework con un insieme di classi e interfacce. Serve da contenitore per un gruppo di elementi. Le raccolte consentono di archiviare, aggiornare, recuperare set di elementi. Aiuta a lavorare con strutture dati come liste, set, alberi e mappe. L'elenco è un'interfaccia del framework Collection. ArrayList e LinkedList sono due classi nel framework delle raccolte. Implementano l'interfaccia di raccolta e l'interfaccia Elenco. Questo articolo discute la differenza tra ArrayList e LinkedList. ArrayList è una classe che estende AbstractList e implementa l'interfaccia List, che utilizza internamente una matrice dinamica per archiviare elementi di dati. LinkedList è una classe che estende AbstractSequentialList e implementa le interfacce List, Deque e Queue, che utilizzano internamente un elenco doppiamente collegato per memorizzare gli elementi dei dati. Questo è il differenza fondamentale tra ArrayList e LinkedList.

CONTENUTO

1. Panoramica e differenza chiave
2. Cos'è ArrayList
3. Cos'è LinkedList
4. Somiglianze tra ArrayList e LinkedList
5. Confronto affiancato - ArrayList vs LinkedList in forma tabulare
6. Sommario

Cos'è ArrayList?

La classe ArrayList viene utilizzata per creare matrici dinamiche. A differenza di un normale array, la dimensione di un array dinamico non è fissa. Un oggetto creato usando la classe ArrayList è autorizzato a memorizzare un insieme di elementi nell'elenco. La capacità aumenta automaticamente, quindi il programmatore può aggiungere elementi all'elenco. La classe ArrayList estende la classe AbstractList che implementa l'interfaccia Elenco. Pertanto, i metodi dell'interfaccia List possono essere utilizzati da ArrayList. Per accedere agli elementi, viene utilizzato il metodo get (). Il metodo add () può essere usato per aggiungere elementi alla lista. Il metodo remove () è usato per rimuovere un elemento dalla lista. Fare riferimento al programma seguente.

Figura 01: esempio di ArrayList

Secondo il programma di cui sopra, viene creato un oggetto di ArrayList. Utilizzando il metodo add, gli elementi possono essere aggiunti dinamicamente. Gli elementi "A", "B", "C", "D" ed "E" vengono aggiunti utilizzando il metodo add. Il metodo remove viene utilizzato per rimuovere un elemento dall'elenco. Passando 4 al metodo di rimozione, la lettera nel 4 ° indice che è "E" viene rimossa dall'elenco. Quando si scorre l'elenco utilizzando il ciclo for, verranno stampate le lettere A, B, C e D.

Cos'è LinkedList?

Simile a ArrayList, il LinkedList viene utilizzato per memorizzare gli elementi di dati in modo dinamico. Un oggetto creato usando la classe LinkedList è autorizzato a memorizzare un insieme di elementi nella lista. La capacità aumenta automaticamente, quindi il programmatore può aggiungere elementi all'elenco. Utilizza internamente una lista doppiamente collegata per archiviare i dati. In una lista doppiamente collegata, i dati vengono memorizzati come nodi. Ogni nodo contiene due collegamenti. Il primo collegamento punta al nodo precedente. Il collegamento successivo punta al nodo successivo nella sequenza.

La classe LinkedList estende la classe AbstractSequentialList e implementa l'interfaccia Elenco. Pertanto, i metodi dell'interfaccia Elenco possono essere utilizzati da LinkedList. Il metodo get () può essere utilizzato per accedere agli elementi della lista. Il metodo add () può essere usato per aggiungere elementi alla lista. Il metodo remove () è usato per rimuovere un elemento dalla lista. Fare riferimento al programma seguente.

Figura 02: esempio con LinkedList

Secondo il programma di cui sopra, viene creato un oggetto di LinkedList. Utilizzando il metodo add, gli elementi possono essere aggiunti dinamicamente. Gli elementi "A", "B", "C", "D" ed "E" vengono aggiunti utilizzando il metodo add. Il metodo remove viene utilizzato per rimuovere un elemento dall'elenco. Passando 4 al metodo di rimozione, la lettera nel 4 ° indice che è "E" rimuove dall'elenco. Quando si itera usando il ciclo for, verranno stampate le lettere A, B, C e D.

Quali sono le somiglianze tra ArrayList e LinkedList?

  • Sia ArrayList che LinkedList implementano l'interfaccia Elenco.
  • Sia ArrayList che LinkedList possono contenere elementi duplicati.
  • Sia ArrayList che LinkedList mantengono l'ordine di inserimento.

Qual è la differenza tra ArrayList e LinkedList?

ArrayList vs LinkedList

ArrayList è una classe che estende AbstractList e implementa l'interfaccia List che utilizza internamente una matrice dinamica per archiviare gli elementi di dati. LinkedList è una classe che estende AbstractSequentialList e implementa le interfacce List, Deque, Queue, che internamente utilizza un elenco doppiamente collegato per memorizzare gli elementi dei dati.
 Accesso agli elementi
L'accesso agli elementi di ArrayList è più veloce di una LinkedList. L'accesso agli elementi di LinkedList è più lento di un ArrayList.
Manipolazione di elementi
La manipolazione degli elementi di ArrayList è più lenta di una LinkedList. La manipolazione degli elementi di LinkedList è più veloce di una ArrayList.
 Comportamento
ArrayList si comporta come una lista. LinkedList si comporta come una lista e una coda.

Sommario - ArrayList vs Lista collegata

La struttura di raccolta consente di lavorare con strutture di dati come elenchi, alberi, mappe e insiemi. L'elenco è un'interfaccia del framework di raccolta. Questo articolo ha discusso la differenza tra ArrayList e LinkedList. ArrayList è una classe che estende AbstractList e implementa l'interfaccia Elenco che utilizza internamente una matrice dinamica per archiviare elementi di dati. LinkedList è una classe che estende AbstractSequentialList e implementa le interfacce List, Deque, Queue, che internamente utilizza un elenco doppiamente collegato per memorizzare gli elementi dei dati. Questa è la differenza tra ArrayList e LinkedList.

Riferimento:

1. Introduzione alla lista collegata | Tutorial sulla struttura dei dati | Studytonight. Disponibile qui
2. "LinkedList in Java - javatpoint".,Il punto, Disponibile qui
3. "Classe Java ArrayList - javatpoint." Il punto, Disponibile qui