LinkedList vs ArrayList Java-s: teadke peamisi erinevusi



See LinkedList vs ArrayList artikkel annab teile korraliku võrdluse loendite liidese rakendavate loendite vahel

Nimekiri Java on alamliides mis annab optimaalsed lahendused mõistetega nagu positsiooniline juurdepääs, iteratsioon ja nii edasi. Selles artiklis käsitlen peamisi erinevusi Java-i loendiliidese LinkedList vs ArrayList vahel.

Allpool on siin artiklis käsitletud teemad:





Alustagem!

Mis on LinkedList?

Pärast massiivid , populaarsuselt teine ​​andmestruktuur on kindlasti a . Lingitud loend on lineaarne andmestruktuur, mille moodustavad asõlmede ahel, milles iga sõlm sisaldab väärtust ja aosutiahela järgmise sõlme juurde.Samuti tlingitud loendi viimane link osutab nullile, näidates ahela lõppu.Lingitud loendi elementi nimetatakse a sõlm .Loendi esimest sõlme nimetatakse pea .Viimast sõlme nimetatakse saba .



Lubage mul tuua teile selle kohta lihtne näide: Kujutage ette üksteisega ühendatud kirjaklambrite ketti. Saate hõlpsalt lisada teise kirjaklambri üla- või alaosa. Samuti on seda lihtne keskele sisestada. Kõik, mida peate tegema, on lihtsalt keskelt kett katkestada, lisada uus kirjaklamber ja seejärel teine ​​pool uuesti ühendada. Lingitud loend on sellega sarnane.

Näide:

pakett MyPackage import java.util.LinkedList import java.util.ListIterator avaliku klassi lingitud loend {public static void main (String args []) {/ * Linked List Declaration * / LinkedListl_list = new LinkedList () / * add (String Item) on kasutatakse üksuste * linkide loendisse lisamiseks * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Lingitud loendi sisu:' + l_list) / * Lisage üksused määratud asukohta * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list sisu pärast redigeerimist: '+ l_list) / * Lisa esimene ja viimane üksus * / l_list.addFirst (' Esimene kursus ') l_list.addLast (' Viimane kursus ') System.out.println (' l_list Sisu pärast lisamist: '+ l_list) / * Hangi ja määrake üksused loendis * / Objekt firstvar = l_list.get (0) System.out.println ('Esimene element:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content pärast esimese üksuse värskendamist: '+ l_list) / * Eemalda positsioonilt * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList pärast 2. ja 3. positsiooni üksuse kustutamist' + l_list) / * Eemalda esimene ja viimane üksus * / l_list.removeFirst () l_list.removeLast () System.out.println ('Lõplik sisu pärast esimese ja viimase üksuse eemaldamist : '+ l_list) / * lingitud loendi kordamine * / ListIteratoritrator = l_list.listIterator () System.out.println (' iteraatori abil kuvatav loend: ') while (itrator.hasNext ()) {System.out.println (itrator . järgmine ())}}}

Väljund:



Lingitud loendi sisu = {Java, Python, Scala, Swift} Sisu pärast redigeerimist = {Java, Python, JavaScript, Kotlin, Scala, Swift} Sisu pärast lisamist = {Esimene kursus, Java, Python, JavaScript, Kotlin, Scala, Swift, Viimane kursus} Esimene üksus = {Esimene kursus} Sisu pärast esimese üksuse värskendamist = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Viimane kursus} Sisu pärast üksuse kustutamist 2. ja 3. positsioonil = {Java9, Python, Kotlin, Scala, Swift, Viimane kursus} Lõplik sisu pärast esimese ja viimase üksuse eemaldamist = {Python, Kotlin, Scala, Swift} loend kuvatakse iteraatori abil = Python Kotlin Scala Swift

Nüüd liigume järgmise teema juurde.

Mis on ArrayList?

on loendiliidese rakendamine, kus elemente saab vastavasse loendisse dünaamiliselt lisada või eemaldada. Siin suurendatakse loendi suurust dünaamiliselt, kui elemente lisatakse rohkem kui algne või tegelik suurus. Kuigi see võib olla aeglasem kui tavalised massiivid, võib see olla kasulik programmides, kus massiivis on vaja palju manipuleerida.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList kasutatakse järgmistel eesmärkidel:

  • ArrayList Java-s on harjunud pood dünaamilise suurusega elementide kogu.
  • Selle lähtestab suurus. Suurus võib aga suureneda, kui kollektsioon kasvab ja kahaneb, kui objektist eemaldatakse .
  • Samuti võimaldab ArrayList loendisse juhuslikult juurde pääseda.

Liigugem edasi ja toogem välja LinkedListi ja ArrayListi sarnasused Javas.

kuidas teisendada string kuupäevaks

Sarnasused LinkedListi ja ArrayListi vahel

Need on Java-s LinkedListi ja ArrayListi märkimisväärsed sarnasused.

  • ArrayList ja LinkedList on rakenduste rakendused Loendi liides .
  • Nii ArrayList kui ka LinkedList säilitavad elementide sisestamise järjekorra. See tähendab, et loendi elementide kuvamise ajal oleks tulemuste komplekt samas järjekorras, milles elemendid lisati loendisse.
  • Need klassidArrayList ja LinkedList pole sünkroonitud ja neid saab sünkroonida selgesõnaliselt CollectionsSynchronizedList meetod.
  • Nende klasside tagastatud iteraator ja ListIterator on tõrkekindlad. See tähendab, et kui loendit on pärast iteraatori loomist igal ajahetkel struktuuriliselt muudetud, välja arvatuditeraatori enda eemaldamise või lisamise meetodid, viskab iteraator a ConcurrentModificationException .

LinkedListi ja ArrayListi erinevused

Kõigepealt vaatame parameetreid, et võrrelda LinkedListi ja ArrayListi Java-s.

Parameetrid Java LinkedListi ja ArrayListi võrdlemiseks:

  • Operatsioon
  • Rakendamine
  • Protsess
  • Mälu
  1. Operatsioonid

Üksuse sisestamise, lisamise ja eemaldamise toimingud on a-s kiiremad LinkedList sest meil pole vaja suurust muuta, nagu me seda teeme ArrayList.

2. Rakendamine

ArrayList põhineb dünaamiliselt muudetava massiivi kontseptsioon, samas LinkedList põhineb topelt lingitud loendi rakendamisel

3. Protsess

TO LinkedList klassi saab kasutada loendi ja järjekorrana, kuna see rakendab liideseid List ja Deque, samas kui ArrayList saab rakendada ainult loendeid.

Neli. Mälu

TO LinkedList kulutab rohkem mälu kui an ArrayList sest iga sõlme a LinkedList salvestab kaks viidet, samas kui ArrayList omab ainult andmeid ja nende indeksit

LinkedList vs ArrayList Java-s

ParameetridLinkedListArrayList
Operatsioonid

Lisamise, lisamise ja eemaldamise toimingud on üsna kiiremad

Võrdluseks toimingudon siin aeglased

Rakendamine

Jälgib topelt lingitud loendi rakendamist

Järgib dünaamiliselt muudetava massiivi mõistet

Protsess

LinkedList klass võib olla loend ja järjekord, kuna see rakendab liideseid List ja Deque

ArrayList klass võib olla loend, kuna see rakendab ainult loendeid

Mälu

LinkedListi mälumaht on suur

LinkedListiga võrreldes vähem

See on kõik! See viib meid selle Java Java LinkedList vs ArrayList artikli lõpuni. Loodan, et teil on selles artiklis õpetatu selge.

Kui leiate selle artikli jaotisest „LinkedList vs ArrayList Java'is”, vaadake järgmist autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Oleme siin, et aidata teil igal sammul teie teekonnal, ja pakume välja õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java-arendajad.