LinkedList vs ArrayList i Java: Känn de stora skillnaderna

Denna LinkedList vs ArrayList-artikel ger dig en korrekt jämförelse mellan listorna som implementerar listgränssnittet

Lista i Java är ett delgränssnitt för som ger optimala lösningar med begrepp som positionell åtkomst, iteration och så vidare. I den här artikeln kommer jag att diskutera de stora skillnaderna mellan listgränssnittet LinkedList vs ArrayList i Java.

Nedan följer ämnena i denna artikel:





Java bryter sig ur metoden

Låt oss börja!

Vad är LinkedList?

Efter matriser , den näst mest populära datastrukturen är definitivt en . En länkad lista är en linjär datastruktur som utgörs av akedja av noder där varje nod innehåller ett värde och enpekaretill nästa nod i kedjan.Också tden sista länken i en länkad lista pekar på null, vilket indikerar slutet på kedjan.Ett element i en länkad lista kallas a nod .Den första noden i listan kallas huvud .Den sista noden kallas svans .



Låt mig ge dig ett enkelt exempel på detta: Tänk dig en kedja av gem som är länkade ihop. Du kan enkelt lägga till ett annat gem i toppen eller botten. Det är också enkelt att sätta in en i mitten. Allt du behöver göra är att bara bryta kedjan i mitten, lägga till en ny gem och sedan återansluta den andra halvan. En länkad lista liknar den här.

Exempel:

paket MyPackage importera java.util.LinkedList importera java.util.ListIterator public class länkad lista {public static void main (String args []) {/ * Länkad listadeklaration * / LinkedListl_list = new LinkedList () / * add (String Item) är används för att lägga till * artiklarna i den länkade listan * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Innehåll för länkad lista:' + l_list) / * Lägg till objekt på angiven position * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Innehåll efter redigering: '+ l_list) / * Lägg till första och sista artikeln * / l_list.addFirst (' First Course ') l_list.addLast (' Last Course ') System.out.println (' l_list Content after addition: '+ l_list) / * Get och ställ in objekt i listan * / Objekt firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content efter uppdatering av första artikeln: '+ l_list) / * Ta bort från en position * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList efter borttagning av objekt i 2: a och 3: e position' + l_list) / * Ta bort första och sista objekt * / l_list.removeFirst () l_list.removeLast () System.out.println ('Slutligt innehåll efter borttagning av första och sista objekt : '+ l_list) / * Iterera den länkade listan * / ListIteratoritrator = l_list.listIterator () System.out.println (' Lista visas med iterator: ') medan (itrator.hasNext ()) {System.out.println (itrator .Nästa()) } } }

Produktion:



Länkat listainnehåll = {Java, Python, Scala, Swift} Innehåll efter redigering = {Java, Python, JavaScript, Kotlin, Scala, Swift} Innehåll efter tillägg = {First Course, Java, Python, JavaScript, Kotlin, Scala, Swift, Sista kursen} Första artikeln = {Första kursen} Innehåll efter uppdatering av första artikeln = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Senaste kursen} Innehåll efter radering av objekt i andra och tredje position = {Java9, Python, Kotlin, Scala, Swift, sista kursen} Slutligt innehåll efter borttagning av första och sista objektet = {Python, Kotlin, Scala, Swift} Listan visas med iterator = Python Kotlin Scala Swift

Nu ska vi gå vidare till nästa ämne.

Vad är en ArrayList?

är implementeringen av List Interface där elementen kan läggas till eller tas bort dynamiskt från motsvarande lista. Här ökas listans storlek dynamiskt om elementen läggs till mer än den ursprungliga eller faktiska storleken. Även om det kan vara långsammare än vanliga matriser kan det vara till hjälp i program där det krävs massor av manipulationer i matrisen.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList används för följande ändamål:

  • ArrayList i Java är van vid Lagra en samling element med dynamisk storlek.
  • Det initialiseras med en storlek. Storleken kan dock öka om samlingen växer och krymper om objekt tas bort från .
  • ArrayList låter dig också slumpmässigt komma åt listan.

Låt oss gå vidare och påpeka likheterna mellan LinkedList och ArrayList i Java.

Likheter mellan LinkedList och ArrayList

Det här är de anmärkningsvärda likheterna mellan LinkedList och ArrayList i Java.

  • ArrayList och LinkedList är implementeringarna av Listgränssnitt .
  • Både ArrayList och LinkedList upprätthåller insättningsordningen för elementen. Detta innebär att, medan listelementen visas, resultatuppsättningen skulle ha samma ordning som elementen infördes i listan.
  • TheseArrayList och LinkedList-klasserna är icke-synkroniserade och kan göras synkroniserade uttryckligen med hjälp av CollectionsSynchronizedList metod.
  • Iteratorn och ListIterator som returneras av dessa klasser går inte snabbt. Detta innebär att, om listan ändras strukturellt vid en given tidpunkt efter att iteratorn har skapats, förutomiterators egna metoder för att ta bort eller lägga till, kommer iteratorn att kasta ett ConcurrentModificationException .

Skillnader mellan LinkedList och ArrayList

Låt oss först titta på parametrarna för att jämföra LinkedList vs ArrayList i Java.

Parametrar för att jämföra LinkedList och ArrayList i Java:

  • Drift
  • Genomförande
  • Bearbeta
  • Minne
  1. Operationer

Insättning, tillägg och borttagning av ett föremål går snabbare i a Länkad lista eftersom vi inte behöver ändra storlek som vi gör i ArrayList.

2. Genomförande

hur man använder tjänsten nu

ArrayList är baserad på konceptet för en dynamiskt anpassningsbar array, medan Länkad lista baseras på dubbelkopplad listaimplementering

3. Bearbeta

TILL Länkad lista class kan användas som en lista och en kö eftersom den implementerar List- och Deque-gränssnitt medan ArrayList bara kan implementera Lists.

Fyra. Minne

TILL Länkad lista förbrukar mer minne än en ArrayList eftersom varje nod i en Länkad lista lagrar två referenser, medan ArrayList innehåller endast data och dess index

LinkedList vs ArrayList i Java

ParametrarLänkad listaArrayList
Operationer

Insättning, tillägg och borttagning är ganska snabbare

beskrivning av Linux-systemadministratör

Jämförelsevis operationernaär långsamma här

Genomförande

Följer implementering av listan med dubbelt länk

Följer konceptet med dynamiskt resizable array

Bearbeta

En LinkedList-klass kan vara en lista och en kö eftersom den implementerar List- och Deque-gränssnitt

En ArrayList-klass kan vara en lista eftersom den bara implementerar listor

Minne

Minnesförbrukningen i LinkedList är hög

Mindre jämfört med LinkedList

Det är allt folk! Detta leder oss till slutet av den här artikeln om LinkedList vs ArrayList i Java. Jag hoppas att ni är tydliga med vad som lärs ut i den här artikeln.

Om du hittade den här artikeln om ”LinkedList vs ArrayList in Java”, kolla in av Edureka, ett pålitligt inlärningsföretag online med ett nätverk av mer än 250 000 nöjda elever spridda över hela världen. Vi är här för att hjälpa dig med varje steg på din resa, och vi kommer med en läroplan som är utformad för studenter och yrkesverksamma som vill vara Java-utvecklare.