Nøgleforskel - ArrayList vs LinkedList
Samlinger er nyttige til lagring af data. I et normalt array er arraystørrelsen fast. Nogle gange er det nødvendigt at oprette arrays, der kan vokse efter behov. Programmeringssprog så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 til Collection framework. ArrayList og LinkedList er to klasser i samlingens rammer. De implementerer samlingsgrænsefladen og listegrænsefladen. Denne artikel diskuterer forskellen mellem ArrayList og LinkedList. ArrayList er en klasse, der udvider AbstractList og implementerer List-grænsefladen, som internt bruger et dynamisk array til at gemme dataelementer. LinkedList er en klasse, der udvider AbstractSequentialList og implementerer grænsefladerne List, Deque og Queue, som internt bruger en dobbeltkoblet liste til at gemme dataelementer. Det er nøgleforskellen 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 om side - ArrayList vs LinkedList i tabelform
6. Resumé
Hvad er ArrayList?
ArrayList-klassen bruges til at oprette dynamiske arrays. I modsætning til et normalt array er størrelsen på et dynamisk array 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å programmøren kan føje elementer til listen. ArrayList-klassen udvider klassen AbstractList, der implementerer List-grænsefladen. Derfor kan metoderne i List-græ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 fra listen. Se nedenstående program.
Figur 01: Eksempel på ArrayList
I henhold til ovenstående program oprettes et objekt fra ArrayList. Ved hjælp af add-metoden 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 fjernelsesmetoden, fjernes brevet i det 4. indeks, der er “E”, fra listen. Når der gentages gennem listen ved hjælp af for-løkken, udskrives bogstaverne A, B, C og D.
Hvad er LinkedList?
Svarende til 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å programmøren kan føje elementer til listen. Det bruger internt dobbeltkoblet liste til at gemme data. På en dobbeltkoblet liste lagres dataene som noder. Hver node indeholder to links. Det første link peger på den forrige knude. Det næste link peger på den næste node i sekvensen.
Klassen LinkedList udvider klassen AbstractSequentialList og implementerer List-grænsefladen. Derfor kan metoderne til List 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 fra LinkedList. Ved hjælp af add-metoden 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 4 overføres til fjernelsesmetoden, fjernes brevet i det 4. indeks, som er “E”, fra listen. Når det gentages ved hjælp af for-løkken, 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ætningsrækkefølgen.
Hvad er forskellen mellem ArrayList og LinkedList?
Diff artikel midt foran bordet
ArrayList vs LinkedList |
|
ArrayList er en klasse, der udvider AbstractList og implementerer List-grænsefladen, som internt bruger et dynamisk array til at gemme dataelementer. | LinkedList er en klasse, der udvider AbstractSequentialList og implementerer grænsefladerne List, Deque, Queue, som internt bruger en dobbeltkoblet liste til at gemme dataelementer. |
Adgang til elementer | |
Adgang til elementer i ArrayList er hurtigere end for en LinkedList. | Adgang til elementer i LinkedList er langsommere end en ArrayList. |
Manipulerende elementer | |
Manipulering af elementer i ArrayList er langsommere end en LinkedList. | Manipulering af elementer i LinkedList er hurtigere end en ArrayList. |
Opførsel | |
ArrayList optræder som en liste. | LinkedList fungerer som en liste og en kø. |
Resumé - ArrayList vs LinkedList
Samlingsrammen giver mulighed for at arbejde med datastrukturer såsom lister, træer, kort og sæt. Listen er en grænseflade til indsamlingsrammer. Denne artikel diskuterede forskellen mellem ArrayList og LinkedList. ArrayList er en klasse, der udvider AbstractList og implementerer List-grænsefladen, der internt bruger et dynamisk array til at gemme dataelementer. LinkedList er en klasse, der udvider AbstractSequentialList og implementerer grænsefladerne List, Deque, Queue, som internt bruger en dobbeltkoblet liste til at gemme dataelementer. Det er forskellen mellem ArrayList og LinkedList.