Nyckelskillnad - ArrayList vs LinkedList
Samlingar är användbara för lagring av data. I en normal matris är matrisstorleken fixerad. Ibland krävs det att skapa matriser som kan växa efter behov. Programmeringsspråk som Java har samlingar. Det är ett ramverk med en uppsättning klasser och gränssnitt. Det fungerar som en behållare för en grupp element. Samlingar gör det möjligt att lagra, uppdatera, hämta uppsättning element. Det hjälper till att arbeta med datastrukturer som listor, uppsättningar, träd och kartor. Listan är ett gränssnitt för samlingsramen. ArrayList och LinkedList är två klasser i samlingsramen. De implementerar samlingsgränssnittet och listgränssnittet. Den här artikeln diskuterar skillnaden mellan ArrayList och LinkedList. ArrayList är en klass som utökar AbstractList och implementerar List-gränssnittet, som internt använder en dynamisk array för att lagra dataelement. LinkedList är en klass som utökar AbstractSequentialList och implementerar gränssnitt List, Deque och Que, som internt använder en dubbelt länkad lista för att lagra dataelement. Det är den viktigaste skillnaden mellan ArrayList och LinkedList.
INNEHÅLL
1. Översikt och nyckelskillnad
2. Vad är ArrayList
3. Vad är LinkedList
4. Likheter mellan ArrayList och LinkedList
5. Jämförelse sida vid sida - ArrayList vs LinkedList i tabellform
6. Sammanfattning
Vad är ArrayList?
ArrayList-klassen används för att skapa dynamiska matriser. Till skillnad från en normal matris är storleken på en dynamisk matris inte fast. Ett objekt som skapats med hjälp av ArrayList-klassen får lagra en uppsättning element i listan. Kapaciteten ökar automatiskt, så att programmeraren kan lägga till element i listan. ArrayList-klassen utökar klassen AbstractList som implementerar List-gränssnittet. Därför kan metoderna i List-gränssnittet användas av ArrayList. För att komma åt element används get () -metoden. Metoden add () kan användas för att lägga till element i listan. Metoden remove () används för att ta bort ett element ur listan. Se nedanstående program.
Figur 01: Exempel på ArrayList
Enligt ovanstående program skapas ett objekt av ArrayList. Med hjälp av add-metoden kan element läggas till dynamiskt. Elementen "A", "B", "C", "D" och "E" läggs till med hjälp av add-metoden. Ta bort metoden används för att ta bort ett element från listan. När du skickar 4 till borttagningsmetoden tas bokstaven i det fjärde indexet som är “E” bort från listan. När du går igenom listan med hjälp av for-slingan skrivs bokstäverna A, B, C och D ut.
Vad är LinkedList?
På samma sätt som ArrayList används LinkedList för att lagra dataelement dynamiskt. Ett objekt som skapats med hjälp av LinkedList-klassen får lagra en uppsättning element i listan. Kapaciteten ökar automatiskt, så att programmeraren kan lägga till element i listan. Den använder internt dubbelt länkad lista för att lagra data. I en dubbelt länkad lista lagras data som noder. Varje nod innehåller två länkar. Den första länken pekar på den föregående noden. Nästa länk pekar på nästa nod i sekvensen.
Klassen LinkedList utökar klassen AbstractSequentialList och implementerar listgränssnittet. Därför kan metoderna för List-gränssnitt användas av LinkedList. Metoden get () kan användas för att komma åt element i listan. Metoden add () kan användas för att lägga till element i listan. Metoden remove () används för att ta bort ett element ur listan. Se nedanstående program.
Figur 02: Exempel med LinkedList
Enligt ovanstående program skapas ett objekt från LinkedList. Med hjälp av add-metoden kan element läggas till dynamiskt. Elementen "A", "B", "C", "D" och "E" läggs till med hjälp av tilläggsmetoden. Ta bort metoden används för att ta bort ett element från listan. När du skickar 4 till borttagningsmetoden tas bokstaven i det fjärde indexet som är “E” bort från listan. När du itererar med hjälp av for-slingan skrivs bokstäverna A, B, C och D ut.
Vad är likheterna mellan ArrayList och LinkedList?
- Både ArrayList och LinkedList implementerar Listgränssnitt.
- Både ArrayList och LinkedList kan innehålla dubbletter.
- Både ArrayList och LinkedList upprätthåller införingsordningen.
Vad är skillnaden mellan ArrayList och LinkedList?
Skilja artikeln mitt före bordet
ArrayList vs LinkedList |
|
ArrayList är en klass som utökar AbstractList och implementerar List-gränssnittet som internt använder en dynamisk array för att lagra dataelement. | LinkedList är en klass som utökar AbstractSequentialList och implementerar gränssnitt List, Deque, Queue, som internt använder en dubbelt länkad lista för att lagra dataelement. |
Åtkomst till element | |
Åtkomst till element i ArrayList är snabbare än för en LinkedList. | Åtkomst till element i LinkedList är långsammare än en ArrayList. |
Manipulera element | |
Att hantera element i ArrayList är långsammare än en LinkedList. | Att hantera element i LinkedList är snabbare än en ArrayList. |
Beteende | |
ArrayList fungerar som en lista. | LinkedList fungerar som en lista och en kö. |
Sammanfattning - ArrayList vs LinkedList
Samlingsramen gör det möjligt att arbeta med datastrukturer som listor, träd, kartor och uppsättningar. Listan är ett gränssnitt för samlingsramen. Denna artikel diskuterade skillnaden mellan ArrayList och LinkedList. ArrayList är en klass som utökar AbstractList och implementerar List-gränssnittet som internt använder en dynamisk matris för att lagra dataelement. LinkedList är en klass som utökar AbstractSequentialList och implementerar gränssnitt List, Deque, Queue, som internt använder en dubbelt länkad lista för att lagra dataelement. Det är skillnaden mellan ArrayList och LinkedList.