LinkedList vs ArrayList in Java: conosci le principali differenze



Questo articolo LinkedList vs ArrayList ti fornirà un corretto confronto tra gli elenchi che implementano l'interfaccia elenco

Elenco in Java è una sotto-interfaccia di che fornisce soluzioni ottimali con concetti come accesso posizionale, iterazione e così via. In questo articolo, discuterò le principali differenze tra l'interfaccia di elenco LinkedList e ArrayList in Java.

Di seguito sono riportati gli argomenti trattati in questo articolo:





Cominciamo!

Cos'è LinkedList?

Dopo array , la seconda struttura dati più popolare è sicuramente un file . Un elenco collegato è una struttura dati lineare costituita da un filecatena di nodi in cui ogni nodo contiene un valore e unpuntatoreal nodo successivo della catena.Inoltre, tL'ultimo collegamento in una lista collegata punta a null, indicando la fine della catena.Un elemento in un elenco collegato è chiamato a nodo .Il primo nodo nell'elenco è chiamato capo .L'ultimo nodo è chiamato coda .



Lascia che ti faccia un semplice esempio di questo: immagina una catena di graffette collegate insieme. Puoi facilmente aggiungere un'altra graffetta in alto o in basso. È anche facile inserirne uno al centro. Tutto quello che devi fare è spezzare la catena al centro, aggiungere una nuova graffetta, quindi ricollegare l'altra metà. Un elenco collegato è simile a questo.

Esempio:

pacchetto MyPackage import java.util.LinkedList import java.util.ListIterator public class linkedlist {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) is usato per aggiungere * gli elementi alla lista collegata * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Contenuto elenco collegato:' + l_list) / * Aggiungi elementi nella posizione specificata * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Contenuto dopo la modifica: '+ l_list) / * Aggiungi il primo e l'ultimo elemento * / l_list.addFirst (' First Course ') l_list.addLast (' Last Course ') System.out.println (' l_list Content after addition: '+ l_list) / * Get e imposta gli elementi nell'elenco * / Object firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content dopo aver aggiornato il primo elemento: '+ l_list) / * Rimuovi da una posizione * / l_list.remove (1) l_list.remove (2) System.out.println ('Elenco collegato dopo l'eliminazione dell'elemento in seconda e terza posizione' + l_list) / * Rimuovi il primo e l'ultimo elemento * / l_list.removeFirst () l_list.removeLast () System.out.println ('Contenuto finale dopo aver rimosso il primo e l'ultimo elemento : '+ l_list) / * Iterazione dell'elenco collegato * / ListIteratoritrator = l_list.listIterator () System.out.println (' Elenco visualizzato utilizzando iteratore: ') while (itrator.hasNext ()) {System.out.println (itrator .Il prossimo()) } } }

Produzione:



Contenuto elenco collegato = {Java, Python, Scala, Swift} Contenuto dopo la modifica = {Java, Python, JavaScript, Kotlin, Scala, Swift} Contenuto dopo l'aggiunta = {Primo corso, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} First Item = {First Course} Contenuto dopo l'aggiornamento del primo elemento = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} Contenuto dopo l'eliminazione dell'elemento in seconda e terza posizione = {Java9, Python, Kotlin, Scala, Swift, Last Course} Contenuto finale dopo la rimozione del primo e dell'ultimo elemento = {Python, Kotlin, Scala, Swift} Elenco visualizzato utilizzando iteratore = Python Kotlin Scala Swift

Ora, passiamo all'argomento successivo.

Cos'è un ArrayList?

è l'implementazione di List Interface in cui gli elementi possono essere aggiunti o rimossi dinamicamente dalla lista corrispondente. Qui, la dimensione dell'elenco viene aumentata dinamicamente se gli elementi vengono aggiunti più della dimensione iniziale o effettiva. Sebbene possa essere più lento degli array standard, può essere utile nei programmi in cui è richiesta molta manipolazione nell'array.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList viene utilizzato per questi scopi:

  • ArrayList in Java è utilizzato per negozio una raccolta di elementi di dimensioni dinamiche.
  • Viene inizializzato da una dimensione. Tuttavia, le dimensioni possono aumentare se la raccolta cresce e si restringe se gli oggetti vengono rimossi dal file .
  • Inoltre, ArrayList ti consente di accedere in modo casuale all'elenco.

Andiamo avanti e segnaliamo le somiglianze tra LinkedList e ArrayList in Java.

Somiglianze tra LinkedList e ArrayList

Queste sono le notevoli somiglianze tra LinkedList e ArrayList in Java.

java come terminare il programma
  • ArrayList e LinkedList sono le implementazioni di Interfaccia elenco .
  • Sia ArrayList che LinkedList mantengono l'ordine di inserimento degli elementi. Ciò significa che, durante la visualizzazione degli elementi List, il set di risultati avrebbe lo stesso ordine in cui gli elementi sono stati inseriti nella List.
  • Queste classiArrayList e LinkedList non sono sincronizzate e possono essere sincronizzate in modo esplicito utilizzando CollectionsSynchronizedList metodo.
  • L'iteratore e il ListIterator restituiti da queste classi sono rapidi. Ciò significa che, se l'elenco viene modificato strutturalmente in un dato momento dopo la creazione dell'iteratore, ad eccezione del filemetodi di rimozione o aggiunta propri dell'iteratore, l'iteratore genererà un file ConcurrentModificationException .

Differenze tra LinkedList e ArrayList

Innanzitutto, diamo un'occhiata ai parametri per confrontare LinkedList e ArrayList in Java.

Parametri per confrontare LinkedList e ArrayList in Java:

  • Operazione
  • Implementazione
  • Processi
  • Memoria
  1. Operazioni

Le operazioni di inserimento, aggiunta e rimozione di un articolo sono più veloci in un file Lista collegata perché non abbiamo bisogno di ridimensionare come facciamo in Lista di array.

2. Implementazione

Lista di array è basato su concetto di array ridimensionabile dinamicamente, mentre Lista collegata si basa sull'implementazione di elenchi doppiamente collegati

3. Processi

PER Lista collegata class può essere utilizzata come lista e coda perché implementa le interfacce List e Deque mentre ArrayList può implementare solo le liste.

Quattro. Memoria

PER Lista collegata consuma più memoria di un file Lista di array perché ogni nodo in un file Lista collegata memorizza due riferimenti, mentre Lista di array contiene solo i dati e il relativo indice

LinkedList vs ArrayList in Java

ParametriLista collegataLista di array
Operazioni

Le operazioni di inserimento, aggiunta e rimozione sono molto più veloci

Comparativamente le operazionisono lenti qui

Implementazione

Segue l'implementazione della lista doppiamente collegata

Segue il concetto di array ridimensionabile dinamicamente

Processi

Una classe LinkedList può essere un elenco e una coda perché implementa le interfacce List e Deque

pool di stringhe costanti in java

Una classe ArrayList può essere un elenco perché implementa solo Lists

Memoria

Il consumo di memoria in LinkedList è elevato

Meno rispetto a LinkedList

È tutto gente! Questo ci porta alla fine di questo articolo su LinkedList vs ArrayList in Java. Spero che siate chiari su ciò che viene insegnato in questo articolo.

Se hai trovato questo articolo su 'LinkedList vs ArrayList in Java', controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Siamo qui per aiutarti in ogni fase del tuo viaggio e creiamo un curriculum progettato per studenti e professionisti che vogliono essere uno sviluppatore Java.