LinkedList vs ArrayList i Java: Kend de store forskelle



Denne LinkedList vs ArrayList-artikel giver dig en ordentlig sammenligning mellem de lister, der implementerer listegrænsefladen

Liste i Java er en undergrænseflade til der giver optimale løsninger med koncepter som positionel adgang, iteration osv. I denne artikel vil jeg diskutere de store forskelle mellem listegrænsefladen LinkedList vs ArrayList i Java.

Nedenfor er emnerne i denne artikel:





Lad os begynde!

Hvad er LinkedList?

Efter arrays , den næstmest populære datastruktur er bestemt en . En sammenkædet liste er en lineær datastruktur, der udgøres af enkæde af noder, hvor hver node indeholder en værdi og enmarkørtil den næste knude i kæden.Også tdet sidste link i en sammenkædet liste peger på null, hvilket indikerer slutningen af ​​kæden.Et element i en sammenkædet liste kaldes a knude .Den første node på listen kaldes hoved .Den sidste knude kaldes hale .



Lad mig give dig et simpelt eksempel på dette: Forestil dig en kæde af papirclips, der er knyttet sammen. Du kan nemt tilføje en anden papirclips til toppen eller bunden. Det er også let at indsætte en i midten. Alt hvad du skal gøre er at bare bryde kæden i midten, tilføje en ny papirclips og derefter tilslutte den anden halvdel igen. En sammenkædet liste svarer til dette.

Eksempel:

pakke 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 bruges til at tilføje * elementerne til den linkede liste * / l_list.add ('Java') l_list.add ('Python') l_list.add ('Scala') l_list.add ('Swift') System.out.println ( 'Indkoblet listeindhold:' + l_list) / * Tilføj varer på specificeret position * / l_list.add (2, 'JavaScript') l_list.add (3, 'Kotlin') System.out.println ('l_list Content efter redigering: '+ l_list) / * Tilføj første og sidste punkt * / l_list.addFirst (' First Course ') l_list.addLast (' Last Course ') System.out.println (' l_list Content after addition: '+ l_list) / * Get og indstil emner på listen * / Objekt firstvar = l_list.get (0) System.out.println ('First Item:' + firstvar) l_list.set (0, 'Java9') System.out.println ('l_list Content efter opdatering af første vare: '+ l_list) / * Fjern fra en position * / l_list.remove (1) l_list.remove (2) System.out.println ('LinkedList efter sletning af element i 2. og 3. position' + l_list) / * Fjern første og sidste element * / l_list.removeFirst () l_list.removeLast () System.out.println ('Endeligt indhold efter fjernelse af første og sidste element : '+ l_list) / * Iterering af den sammenkædede liste * / ListIteratoritrator = l_list.listIterator () System.out.println (' List vises ved hjælp af iterator: ') mens (itrator.hasNext ()) {System.out.println (itrator .Næste()) } } }

Produktion:



Tilknyttet listeindhold = {Java, Python, Scala, Swift} Indhold efter redigering = {Java, Python, JavaScript, Kotlin, Scala, Swift} Indhold efter tilføjelse = {Første kursus, Java, Python, JavaScript, Kotlin, Scala, Swift, Sidste kursus} Første emne = {Første kursus} Indhold efter opdatering af første element = {Java9, Java, Python, JavaScript, Kotlin, Scala, Swift, Sidste kursus} Indhold efter sletning af element i 2. og 3. position = {Java9, Python, Kotlin, Scala, Swift, sidste kursus} Endeligt indhold efter fjernelse af første og sidste element = {Python, Kotlin, Scala, Swift} Liste vist ved hjælp af iterator = Python Kotlin Scala Swift

Lad os nu gå videre til det næste emne.

Hvad er en ArrayList?

er implementeringen af ​​List Interface, hvor elementerne kan tilføjes eller fjernes dynamisk fra den tilsvarende liste. Her øges størrelsen på listen dynamisk, hvis elementerne tilføjes mere end den oprindelige eller faktiske størrelse. Selvom det kan være langsommere end standardarrays, kan det være nyttigt i programmer, hvor der kræves masser af manipulation i arrayet.

LinkedList-vs-ArrayList-in-Java-Edureka

ArrayList bruges til disse formål:

  • ArrayList i Java er vant til butik en samling af dynamiske størrelser.
  • Det initialiseres med en størrelse. Størrelsen kan dog øges, hvis samlingen vokser og krymper, hvis genstande fjernes fra .
  • ArrayList giver dig også mulighed for tilfældigt at få adgang til listen.

Lad os gå videre og påpege lighederne mellem LinkedList og ArrayList i Java.

Ligheder mellem LinkedList og ArrayList

Dette er de bemærkelsesværdige ligheder mellem LinkedList og ArrayList i Java.

  • ArrayList og LinkedList er implementeringerne af Liste interface .
  • Både ArrayList og LinkedList opretholder elementernes indsætningsrækkefølge. Dette betyder, at resultatsættet, mens du viser listeelementerne, har den samme rækkefølge, som elementerne blev indsat i listen.
  • TheseArrayList- og LinkedList-klasser er ikke-synkroniserede og kan synkroniseres eksplicit ved hjælp af CollectionsSynchronizedList metode.
  • Iteratoren og ListIteratoren, der returneres af disse klasser, er fail-hurtige. Dette betyder, at hvis listen ændres strukturelt til enhver tid efter iteratoren er oprettet, undtageniterators egne metoder til fjernelse eller tilføjelse, vil iteratoren kaste et ConcurrentModificationException .

Forskelle mellem LinkedList og ArrayList

Lad os først se på parametrene for at sammenligne LinkedList vs ArrayList i Java.

hvordan man bliver en kunstig intelligensingeniør

Parametre til sammenligning af LinkedList og ArrayList i Java:

  • Operation
  • Implementering
  • Behandle
  • Hukommelse
  1. Operationer

Indsættelses-, tilføjelses- og fjernelsesoperationer af en vare er hurtigere i en LinkedList fordi vi ikke behøver at ændre størrelsen, som vi gør i ArrayList.

2. Implementering

ArrayList er baseret på konceptet med et dynamisk resizable array, mens LinkedList er baseret på dobbeltkoblet listeimplementering

3. Behandle

TIL LinkedList klasse kan bruges som en liste og en kø, fordi den implementerer List- og Deque-grænseflader, mens ArrayList kun kan implementere Lists.

Fire. Hukommelse

TIL LinkedList bruger mere hukommelse end en ArrayList fordi hver knude i en LinkedList gemmer to referencer, hvorimod ArrayList har kun data og dets indeks

LinkedList vs ArrayList i Java

ParametreLinkedListArrayList
Operationer

Indsættelse, tilføjelse og fjernelse er ret hurtigere

Sammenlignende operationerneer langsom her

Implementering

Følger dobbeltkoblet listeimplementering

Følger begrebet dynamisk resizable array

Behandle

En LinkedList-klasse kan være en liste og en kø, fordi den implementerer List- og Deque-grænseflader

En ArrayList-klasse kan være en liste, fordi den kun implementerer Lister

Hukommelse

Hukommelsesforbruget i LinkedList er højt

Mindre sammenlignet med LinkedList

Det var alt folkens! Dette bringer os til slutningen af ​​denne artikel om LinkedList vs ArrayList i Java. Jeg håber, at I er klare med, hvad der læres i denne artikel.

Hvis du fandt denne artikel om “LinkedList vs ArrayList in Java”, skal du tjekke af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, og vi kommer med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.