Forskellen mellem ArrayList og LinkedList

Nøgleforskel - ArrayList vs LinkedList
 

Samlinger er nyttige til lagring af data. I en normal matrix er arraystørrelsen fast. Undertiden kræves det at oprette arrays, der kan vokse efter behov. Programmeringssprog som Java har samlinger. Det er en ramme med et sæt klasser og grænseflader. Det fungerer som en container til en gruppe af elementer. Samlinger giver mulighed for at gemme, opdatere, hente sæt af elementer. Det hjælper med at arbejde med datastrukturer såsom lister, sæt, træer og kort. Listen er en grænseflade i samlingens rammer. ArrayList og LinkedList er to klasser inden for samlingerne. De implementerer samling interface og List interface. Denne artikel diskuterer forskellen mellem ArrayList og LinkedList. ArrayList er en klasse, der udvider AbstractList og implementerer List-interface, som internt bruger en dynamisk matrix til at gemme dataelementer. LinkedList er en klasse, der udvider AbstractSequentialList og implementerer Liste, Deque og Queue-grænseflader, som internt bruger en dobbeltkædet liste til at gemme dataelementer. Det er den vigtigste forskel mellem ArrayList og LinkedList.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad er ArrayList
3. Hvad er LinkedList
4. Ligheder mellem ArrayList og LinkedList
5. Sammenligning side ved side - ArrayList vs LinkedList i tabelform
6. Resume

Hvad er ArrayList?

ArrayList-klassen bruges til at oprette dynamiske arrays. I modsætning til en normal matrix er størrelsen på en dynamisk matrix ikke fast. Et objekt oprettet ved hjælp af ArrayList-klassen har lov til at gemme et sæt elementer på listen. Kapaciteten øges automatisk, så programmereren kan tilføje elementer til listen. ArrayList-klassen udvider klassen AbstractList, der implementerer List-interface. Derfor kan metoderne i listegrænsefladen bruges af ArrayList. For at få adgang til elementer bruges get () -metoden. Metoden add () kan bruges til at tilføje elementer til listen. Metoden remove () bruges til at fjerne et element ud af listen. Se nedenstående program.

Figur 01: Eksempel på ArrayList

I henhold til ovenstående program oprettes et objekt med ArrayList. Ved hjælp af tilføjelsesmetoden kan elementer tilføjes dynamisk. Elementerne "A", "B", "C", "D" og "E" tilføjes ved hjælp af tilføjelsesmetoden. Fjernelsesmetoden bruges til at fjerne et element fra listen. Når du sender 4 til metoden til fjernelse, fjernes bogstavet i det 4. indeks, der er "E" fra listen. Når iterering gennem listen ved hjælp af for-løkke udskrives bogstaverne A, B, C og D.

Hvad er LinkedList?

Ligesom med ArrayList bruges LinkedList til at gemme dataelementer dynamisk. Et objekt oprettet ved hjælp af klassen LinkedList har lov til at gemme et sæt elementer på listen. Kapaciteten øges automatisk, så programmereren kan tilføje elementer til listen. Den bruger internt dobbeltkædet liste til at gemme data. I en dobbeltkædet liste gemmes dataene som noder. Hver knude indeholder to links. Det første link peger på den forrige knude. Det næste link peger på den næste knude i sekvensen.

Klassen LinkedList udvider klassen AbstractSequentialList og implementerer List-grænsefladen. Derfor kan metoderne til Liste-interface bruges af LinkedList. Metoden get () kan bruges til at få adgang til elementer på listen. Metoden add () kan bruges til at tilføje elementer til listen. Metoden remove () bruges til at fjerne et element ud af listen. Se nedenstående program.

Figur 02: Eksempel med LinkedList

I henhold til ovenstående program oprettes et objekt med LinkedList. Ved hjælp af tilføjelsesmetoden kan elementer tilføjes dynamisk. Elementerne "A", "B", "C", "D" og "E" tilføjes ved hjælp af tilføjelsesmetoden. Fjernelsesmetoden bruges til at fjerne et element fra listen. Når du passerer 4 til metoden til fjernelse, fjernes bogstavet i det fjerde indeks, der er “E” fra listen. Når der gentages brug af for-loop, udskrives bogstaverne A, B, C og D.

Hvad er ligheden mellem ArrayList og LinkedList?

  • Både ArrayList og LinkedList implementerer List-interface.
  • Både ArrayList og LinkedList kan indeholde duplikatelementer.
  • Både ArrayList og LinkedList opretholder indsættelsesrækkefølgen.

Hvad er forskellen mellem ArrayList og LinkedList?

ArrayList vs LinkedList

ArrayList er en klasse, der udvider AbstractList og implementerer List-grænsefladen, som internt bruger en dynamisk matrix til at gemme dataelementer. LinkedList er en klasse, der udvider AbstractSequentialList og implementerer List, Deque, Queue-grænseflader, som internt bruger en dobbeltkædet liste til at gemme dataelementer.
 Adgang til elementer
Adgang til elementer i ArrayList er hurtigere end i en LinkedList. Adgang til elementer i LinkedList er langsommere end i en ArrayList.
Manipulering af elementer
Manipulering af elementer i ArrayList er langsommere end i en LinkedList. Manipulering af elementer i LinkedList er hurtigere end i en ArrayList.
 Opførsel
ArrayList fungerer som en liste. LinkedList fungerer som en liste og en kø.

Resumé - ArrayList vs LinkedList

Samlingsrammen tillader arbejde med datastrukturer såsom lister, træer, kort og sæt. Listen er en grænseflade for indsamlingsrammer. Denne artikel diskuterede forskellen mellem ArrayList og LinkedList. ArrayList er en klasse, der udvider AbstractList og implementerer List-grænsefladen, der internt bruger en dynamisk matrix til at gemme dataelementer. LinkedList er en klasse, der udvider AbstractSequentialList og implementerer List, Deque, Queue-grænseflader, som internt bruger en dobbeltkædet liste til at gemme dataelementer. Det er forskellen mellem ArrayList og LinkedList.

Reference:

1. Introduktion til linket liste | Vejledning i datastruktur | Studytonight. Tilgængelig her
2. “LinkedList in Java - javatpoint.”, Punktet, tilgængeligt her
3. "Java ArrayList-klasse - javatpoint." Punktet, tilgængeligt her