LinkedList vs ArrayList v Javi: poznajte glavne razlike



V tem članku LinkedList vs ArrayList boste našli primerjavo med seznami, ki izvajajo vmesnik seznama

Seznam v Javi je podvmesnik ki daje optimalne rešitve s koncepti, kot so položajni dostop, ponavljanje in tako naprej. V tem članku bom razpravljal o glavnih razlikah med vmesnikom seznama LinkedList in ArrayList v Javi.

razvrščanje nizov c ++

Spodaj so teme, zajete v tem članku:





Začnimo!

Kaj je LinkedList?

Po nizi , druga najbolj priljubljena podatkovna struktura je zagotovo a . Povezani seznam je linearna podatkovna struktura, ki jo sestavlja averiga vozlišč, v kateri vsako vozlišče vsebuje vrednost in akazalecdo naslednjega vozlišča v verigi.Tudi tzadnja povezava na povezanem seznamu kaže na nič, kar pomeni konec verige.Element na povezanem seznamu se imenuje a vozlišče .Prvo vozlišče na seznamu se imenuje glavo .Zadnje vozlišče se imenuje rep .



Naj vam dam preprost primer tega: predstavljajte si verigo sponk, ki so med seboj povezane. Zgoraj ali spodaj lahko preprosto dodate še eno sponko. Enostavno je tudi eno vstaviti na sredino. Vse, kar morate storiti, je, da samo prekinite verigo na sredini, dodate novo sponko in nato ponovno povežete drugo polovico. Povezani seznam je podoben temu.

Primer:

paket MyPackage import java.util.LinkedList import java.util.ListIterator javni razred povezani seznam {public static void main (String args []) {/ * Izjava o povezanem seznamu * / LinkedListl_list = new LinkedList () / * add (String Item) je uporablja se za dodajanje * predmetov na povezani seznam * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Vsebina povezanega seznama:' + l_list) / * Dodaj elemente na določenem mestu * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Vsebina po urejanju: '+ l_list) / * Dodaj prvi in ​​zadnji element * / l_list.addFirst (' First Course ') l_list.addLast (' Last Course ') System.out.println (' l_list Content after add: '+ l_list) / * Get in nastavite Elemente na seznamu * / Object firstvar = l_list.get (0) System.out.println ('Prvi element:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Vsebina po posodobitvi prvega elementa: '+ l_list) / * Odstrani s položaja * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList po izbrisu elementa na 2. in 3. mestu' + l_list) / * Odstrani prvi in ​​zadnji element * / l_list.removeFirst () l_list.removeLast () System.out.println ('Končna vsebina po odstranitvi prvega in zadnjega elementa : '+ l_list) / * Ponavljanje povezanega seznama * / ListIteratoritrator = l_list.listIterator () System.out.println (' Seznam, prikazan z uporabo iteratorja: '), medtem ko (itrator.hasNext ()) {System.out.println (itrator .Naslednji()) } } }

Izhod:



Vsebina povezanega seznama = {Java, Python, Scala, Swift} Vsebina po urejanju = {Java, Python, JavaScript, Kotlin, Scala, Swift} Vsebina po dodajanju = {Prvi tečaj, Java, Python, JavaScript, Kotlin, Scala, Swift, Zadnji tečaj} Prvi predmet = {Prvi tečaj} Vsebina po posodobitvi prvega elementa = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Zadnji tečaj} Vsebina po izbrisu predmeta na 2. in 3. mestu = {Java9, Python, Kotlin, Scala, Swift, zadnji tečaj} Končna vsebina po odstranitvi prvega in zadnjega elementa = {Python, Kotlin, Scala, Swift} Seznam, prikazan z uporabo iteratorja = Python Kotlin Scala Swift

Zdaj pa pojdimo na naslednjo temo.

Kaj je ArrayList?

je izvedba vmesnika seznama, kjer lahko elemente dinamično dodajamo ali odstranjujemo z ustreznega seznama. Tu se velikost seznama dinamično poveča, če so elementi dodani več kot začetna ali dejanska velikost. Čeprav je lahko počasnejši od standardnih nizov, je lahko koristen v programih, kjer je potrebno veliko manipulacij v polju.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList se uporablja za te namene:

  • ArrayList v Javi je vajen trgovina dinamično velika zbirka elementov.
  • Inicializira se z velikostjo. Vendar se lahko velikost poveča, če zbirka raste in se skrči, če se predmeti odstranijo iz .
  • ArrayList vam omogoča tudi naključen dostop do seznama.

Pojdimo naprej in opozorimo na podobnosti med LinkedList in ArrayList v Javi.

Podobnosti med LinkedList in ArrayList

To so opazne podobnosti med LinkedList in ArrayList v Javi.

  • ArrayList in LinkedList sta izvedbi Seznam vmesnik .
  • Tako ArrayList kot LinkedList ohranjata vrstni red vstavljanja elementov. To pomeni, da bi bil med prikazom elementov seznama nabor rezultatov v enakem vrstnem redu, kot so bili elementi vstavljeni v seznam.
  • Razreda TheseArrayList in LinkedList nista sinhronizirana in ju je mogoče eksplicitno sinhronizirati z uporabo CollectionsSynchronizedList metoda.
  • Iterator in listIterator, ki ju vrnejo ti razredi, ne delujeta hitro. To pomeni, da če je seznam strukturno spremenjen kadar koli po izdelavi iteratorja, razeniterator lastne metode odstranjevanja ali dodajanja, iterator vrže a ConcurrentModificationException .

Razlike med LinkedList in ArrayList

Najprej si oglejmo parametre za primerjavo LinkedList in ArrayList v Javi.

Parametri za primerjavo LinkedList in ArrayList v Javi:

  • Delovanje
  • Izvajanje
  • Proces
  • Spomin
  1. Operacije

Postopki vstavljanja, dodajanja in odstranjevanja predmeta so hitrejši v a LinkedList ker nam ni treba spreminjati velikosti kot v ArrayList.

2. Izvajanje

ArrayList temelji na koncept dinamično spremenljivega polja, medtem ko LinkedList temelji na izvajanju dvojno povezanega seznama

3. Proces

TO LinkedList razred se lahko uporablja kot seznam in čakalna vrsta, ker izvaja vmesnike List in Deque, medtem ko lahko ArrayList izvaja samo Sezname.

Štiri. Spomin

TO LinkedList porabi več pomnilnika kot ArrayList ker vsako vozlišče v a LinkedList hrani dve referenci, medtem ko ArrayList vsebuje samo podatke in njihov indeks

LinkedList vs ArrayList v Javi

ParametriLinkedListArrayList
Operacije

Postopki vstavljanja, dodajanja in odstranjevanja so precej hitrejši

Primerjalno operacijeso tukaj počasi

Izvajanje

Sledi izvajanju dvojno povezanega seznama

Sledi konceptu dinamično spremenljivega polja

Proces

Razred LinkedList je lahko seznam in čakalna vrsta, ker izvaja vmesnike List in Deque

Razred ArrayList je lahko seznam, ker izvaja samo sezname

Spomin

Poraba pomnilnika v LinkedList je velika

Manj v primerjavi z LinkedList

To so vsi ljudje! To nas pripelje do konca tega članka o LinkedList vs ArrayList v Javi. Upam, da vam je jasno, kaj se uči v tem članku.

Če ste našli ta članek o »LinkedList vs ArrayList v Javi«, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu. Tu smo, da vam pomagamo pri vsakem koraku na poti in pripravimo učni načrt, ki je zasnovan za študente in strokovnjake, ki želijo biti razvijalec Java.