Diferència entre ArrayList i LinkedList

Taula de continguts:

Diferència entre ArrayList i LinkedList
Diferència entre ArrayList i LinkedList

Vídeo: Diferència entre ArrayList i LinkedList

Vídeo: Diferència entre ArrayList i LinkedList
Vídeo: LinkedList vs ArrayList in Java Tutorial - Which Should You Use? 2024, Juliol
Anonim

Diferència clau: ArrayList vs LinkedList

Les col·leccions són útils per emmagatzemar dades. En una matriu normal, la mida de la matriu és fixa. De vegades cal crear matrius que puguin créixer segons sigui necessari. Els llenguatges de programació com Java tenen col·leccions. És un framework amb un conjunt de classes i interfícies. Serveix com a contenidor per a un grup d'elements. Les col·leccions permeten emmagatzemar, actualitzar i recuperar conjunt d'elements. Ajuda a treballar amb estructures de dades com ara llistes, conjunts, arbres i mapes. La llista és una interfície del marc de col·lecció. ArrayList i LinkedList són dues classes del marc de col·leccions. Implementen la interfície de col·lecció i la interfície de llista. En aquest article es parla de la diferència entre ArrayList i LinkedList. ArrayList és una classe que amplia la AbstractList i implementa la interfície List, que utilitza internament una matriu dinàmica per emmagatzemar elements de dades. LinkedList és una classe que amplia la AbstractSequentialList i implementa les interfícies List, Deque i Queue, que utilitzen internament una llista doblement enllaçada per emmagatzemar elements de dades. Aquesta és la diferència clau entre ArrayList i LinkedList.

Què és ArrayList?

La classe ArrayList s'utilitza per crear matrius dinàmiques. A diferència d'una matriu normal, la mida d'una matriu dinàmica no està fixada. Un objecte creat amb la classe ArrayList pot emmagatzemar un conjunt d'elements a la llista. La capacitat augmenta automàticament, de manera que el programador pot afegir elements a la llista. La classe ArrayList amplia la classe AbstractList que implementa la interfície List. Per tant, ArrayList pot utilitzar els mètodes de la interfície List. Per accedir als elements, s'utilitza el mètode get(). El mètode add() es pot utilitzar per afegir elements a la llista. El mètode remove() s'utilitza per eliminar un element de la llista. Consulteu el programa següent.

Diferència entre ArrayList i LinkedList
Diferència entre ArrayList i LinkedList
Diferència entre ArrayList i LinkedList
Diferència entre ArrayList i LinkedList

Figura 01: exemple de ArrayList

Segons el programa anterior, es crea un objecte de ArrayList. Mitjançant el mètode add, es poden afegir elements dinàmicament. Els elements "A", "B", "C", "D" i "E" s'afegeixen mitjançant el mètode d'addició. El mètode remove s'utilitza per eliminar un element de la llista. Quan es passa 4 al mètode d'eliminació, la lletra del quart índex que és "E" s'elimina de la llista. En iterar la llista utilitzant el bucle for, s'imprimiran les lletres A, B, C i D.

Què és LinkedList?

Semblant a ArrayList, la LinkedList s'utilitza per emmagatzemar elements de dades de manera dinàmica. Un objecte creat amb la classe LinkedList pot emmagatzemar un conjunt d'elements a la llista. La capacitat augmenta automàticament, de manera que el programador pot afegir elements a la llista. Utilitza internament una llista doblement enllaçada per emmagatzemar dades. En una llista doblement enllaçada, les dades s'emmagatzemen com a nodes. Cada node conté dos enllaços. El primer enllaç apunta al node anterior. El següent enllaç apunta al següent node de la seqüència.

La classe LinkedList amplia la classe AbstractSequentialList i implementa la interfície List. Per tant, la LinkedList pot utilitzar els mètodes de la interfície List. El mètode get() es pot utilitzar per accedir a elements de la llista. El mètode add() es pot utilitzar per afegir elements a la llista. El mètode remove() s'utilitza per eliminar un element de la llista. Consulteu el programa següent.

Diferència clau entre ArrayList i LinkedList
Diferència clau entre ArrayList i LinkedList
Diferència clau entre ArrayList i LinkedList
Diferència clau entre ArrayList i LinkedList

Figura 02: exemple amb LinkedList

Segons el programa anterior, es crea un objecte de LinkedList. Mitjançant el mètode add, es poden afegir elements dinàmicament. Els elements "A", "B", "C", "D" i "E" s'afegeixen mitjançant el mètode d'addició. El mètode remove s'utilitza per eliminar un element de la llista. Quan es passa 4 al mètode d'eliminació, la lletra del quart índex que és "E" s'elimina de la llista. Quan feu servir el bucle for, s'imprimiran les lletres A, B, C i D.

Quines similituds hi ha entre ArrayList i LinkedList?

  • Tant ArrayList com LinkedList implementen la interfície de llista.
  • Tant ArrayList com LinkedList poden contenir elements duplicats.
  • Tant ArrayList com LinkedList mantenen l'ordre d'inserció.

Quina diferència hi ha entre ArrayList i LinkedList?

ArrayList vs LinkedList

ArrayList és una classe que amplia la AbstractList i implementa la interfície List que internament utilitza una matriu dinàmica per emmagatzemar elements de dades. LinkedList és una classe que amplia la AbstractSequentialList i implementa les interfícies List, Deque, Queue, que internament utilitza una llista doblement enllaçada per emmagatzemar elements de dades.
Accés als elements
L'accés als elements de ArrayList és més ràpid que d'una LinkedList. L'accés als elements de LinkedList és més lent que d'una ArrayList.
Manipulació d'elements
La manipulació d'elements de ArrayList és més lenta que d'una LinkedList. La manipulació d'elements de LinkedList és més ràpid que d'una ArrayList.
Comportament
ArrayList funciona com una llista. LinkedList funciona com una llista i una cua.

Resum: ArrayList vs LinkedList

El marc de recollida permet treballar amb estructures de dades com ara llistes, arbres, mapes i conjunts. La llista és una interfície de marc de col·lecció. En aquest article es parla de la diferència entre ArrayList i LinkedList. ArrayList és una classe que amplia la AbstractList i implementa la interfície List que internament utilitza una matriu dinàmica per emmagatzemar elements de dades. LinkedList és una classe que amplia la AbstractSequentialList i implementa les interfícies List, Deque, Queue, que internament utilitza una llista doblement enllaçada per emmagatzemar elements de dades. Aquesta és la diferència entre ArrayList i LinkedList.

Recomanat: