LinkedList vs ArrayList a Java: coneixeu les principals diferències



Aquest article de LinkedList vs ArrayList us proporcionarà una comparació adequada entre les llistes que implementen la interfície de la llista

Llista en Java és una subinterfície de que proporciona solucions òptimes amb conceptes com accés posicional, iteració, etc. En aquest article, parlaré de les principals diferències entre la interfície de llista LinkedList vs ArrayList a Java.

A continuació es detallen els temes tractats en aquest article:





Anem a començar!

Què és LinkedList?

Després matrius , la segona estructura de dades més popular és definitivament un . Una llista enllaçada és una estructura de dades lineal que està constituïda per uncadena de nodes en què cada node conté un valor i unpunteral següent node de la cadena.A més, tl'últim enllaç d'una llista enllaçada apunta a nul, indicant el final de la cadena.Un element d’una llista enllaçada s’anomena a node .El primer node de la llista s'anomena cap .L'últim node s'anomena cua .



Permeteu-me que us en doni un exemple senzill: imagineu una cadena de clips que estan units entre si. Podeu afegir fàcilment un altre clip a la part superior o inferior. També és fàcil inserir-ne un al mig. Tot el que heu de fer és trencar la cadena al centre, afegir un clip nou i tornar a connectar l’altra meitat. Una llista enllaçada és similar a aquesta.

Exemple:

com fer una matriu d'objectes
package 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 utilitzat per afegir * els elements a la llista enllaçada * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Contingut de la llista enllaçada:' + l_list) / * Afegeix elements a la posició especificada * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('L_list Contingut després de l'edició: '+ l_list) / * Afegeix el primer i l'últim element * / l_list.addFirst (' Primer curs ') l_list.addLast (' Darrer curs ') System.out.println (' l_list Contingut després de l'addició: '+ l_list) / * Obtén i definiu els ítems de la llista * / Object firstvar = l_list.get (0) System.out.println ('Primer element:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content després d'actualitzar el primer element: '+ l_list) / * Elimina d'una posició * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList després de suprimir l'element en la 2a i 3a posició' + l_list) / * Elimina el primer i l'últim element * / l_list.removeFirst () l_list.removeLast () System.out.println ('Contingut final després d'eliminar el primer i l'últim element : '+ l_list) / * Iteració de la llista enllaçada * / ListIteratoritrator = l_list.listIterator () System.out.println (' Llista que es mostra mitjançant iterador: ') mentre (itrator.hasNext ()) {System.out.println (itrator .Pròxim()) } } }

Sortida:



Contingut de la llista enllaçada = {Java, Python, Scala, Swift} Contingut després de l’edició = {Java, Python, JavaScript, Kotlin, Scala, Swift} Contingut després de l’addició = {Primer curs, Java, Python, JavaScript, Kotlin, Scala, Swift, Darrer curs} Primer element = {Primer curs} Contingut després d'actualitzar el primer element = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Last Course} Contingut després de suprimir l'element en 2a i 3a posició = {Java9, Python, Kotlin, Scala, Swift, darrer curs} Contingut final després d'eliminar el primer i l'últim element = {Python, Kotlin, Scala, Swift} Llista que es mostra mitjançant iterador = Python Kotlin Scala Swift

Ara anem al següent tema.

Què és una ArrayList?

és la implementació de la interfície de llista on els elements es poden afegir o eliminar dinàmicament de la llista corresponent. Aquí, la mida de la llista augmenta dinàmicament si s’afegeixen més elements que la mida inicial o real. Tot i que pot ser més lent que les matrius estàndard, pot ser útil en programes on es requereix molta manipulació a la matriu.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList s'utilitza per a aquests propòsits:

  • ArrayList a Java està acostumat botiga una col·lecció d'elements de mida dinàmica.
  • S'inicialitza amb una mida. Tanmateix, la mida pot augmentar si la col·lecció creix i es redueix si s'eliminen objectes del fitxer .
  • A més, ArrayList us permet accedir a la llista de manera aleatòria.

Avancem i assenyalem les similituds entre LinkedList i ArrayList a Java.

Semblances entre LinkedList i ArrayList

Aquestes són les notables semblances entre LinkedList i ArrayList a Java.

  • ArrayList i LinkedList són les implementacions del fitxer Interfície de llista .
  • Tant ArrayList com LinkedList mantenen l'ordre d'inserció dels elements. Això vol dir que, mentre es mostren els elements de la llista, el conjunt de resultats tindria el mateix ordre en què els elements s’han inserit a la llista.
  • Aquestes classes d'ArrayList i LinkedList no estan sincronitzades i es poden sincronitzar explícitament mitjançant l'ús de CollectionsSynchronizedList mètode.
  • L'iterador i el ListIterator retornats per aquestes classes fan fallades ràpides. Això significa que, si la llista es modifica estructuralment en un moment donat després de la creació de l'iterador, excepte el fitxerpròpia de l’iterador per eliminar o afegir mètodes, l’iterador llançarà un ConcurrentModificationException .

Diferències entre LinkedList i ArrayList

En primer lloc, fem una ullada als paràmetres per comparar LinkedList vs ArrayList a Java.

Paràmetres per comparar LinkedList i ArrayList a Java:

  • Operació
  • Implementació
  • Procés
  • Memòria
  1. Operacions

Les operacions d'inserció, addició i eliminació d'un element són més ràpides en un fitxer Llista enllaçada perquè no necessitem canviar la mida com fem a dins ArrayList.

2. Implementació

com clonar un objecte a Java

ArrayList es basa en el concepte d 'una matriu redimensionable dinàmicament, mentre que Llista enllaçada es basa en la implementació de llistes doblement enllaçades

3. Procés

A Llista enllaçada class es pot utilitzar com a llista i com a cua perquè implementa interfícies List i Deque mentre que ArrayList només pot implementar Llistes.

4. Memòria

A Llista enllaçada consumeix més memòria que un ArrayList perquè tots els nodes d'un fitxer Llista enllaçada emmagatzema dues referències, mentre que ArrayList només conté dades i el seu índex

LinkedList vs ArrayList a Java

ParàmetresLlista enllaçadaArrayList
Operacions

Les operacions d’inserció, addició i eliminació són bastant més ràpides

Comparativament les operacionsaquí són lents

Implementació

Segueix la implementació de la llista doblement enllaçada

convertint la cadena a data en java

Segueix el concepte de matriu redimensionable dinàmicament

Procés

Una classe LinkedList pot ser una llista i una cua perquè implementa interfícies List i Deque

Una classe ArrayList pot ser una llista perquè només implementa llistes

Memòria

El consum de memòria a LinkedList és elevat

Menys comparat amb LinkedList

Això és tot amics! Això ens porta al final d’aquest article sobre LinkedList vs ArrayList a Java. Espero que tingueu clar el que s’ensenya en aquest article.

Si heu trobat aquest article sobre 'LinkedList vs ArrayList a Java', consulteu el per Edureka, una empresa d'aprenentatge en línia de confiança amb una xarxa de més de 250.000 estudiants satisfets repartits per tot el món. Estem aquí per ajudar-vos en cada pas del vostre viatge i oferim un pla d’estudis dissenyat per a estudiants i professionals que vulguin ser desenvolupador de Java.