Samlingar är användbara för att lagra data. I en normal array är arraystorleken fixerad. Ibland är det nödvändigt att skapa arrays 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 av element. Samlingar tillåter 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. I denna artikel diskuteras skillnaden mellan ArrayList och LinkedList. ArrayList är en klass som utökar AbstractList och implementerar listgränssnittet, som internt använder en dynamisk array för att lagra dataelement. LinkedList är en klass som utökar AbstractSequentialList och implementerar List, Deque och Que-gränssnitt, som internt använder en dubbelkopplad lista för att lagra dataelement. Det är nyckelskillnad mellan ArrayList och LinkedList.
1. Översikt och nyckelskillnad
2. Vad är ArrayList
3. Vad är LinkedList
4. Likheter mellan ArrayList och LinkedList
5. Jämförelse vid sida vid sida - ArrayList vs LinkedList i tabellform
6. Sammanfattning
ArrayList-klassen används för att skapa dynamiska arrays. Till skillnad från en normal array är storleken på en dynamisk array inte fixad. Ett objekt skapat med ArrayList-klassen får lagra en uppsättning element i listan. Kapaciteten ökar automatiskt, så programmeraren kan lägga till element i listan. ArrayList-klassen utökar klassen AbstractList som implementerar listgränssnittet. Därför kan metoderna i listgränssnittet användas av ArrayList. För att komma åt element används metoden get (). 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 nedan programmet.
Figur 01: Exempel på ArrayList
Enligt ovanstående program skapas ett objekt av ArrayList. Med add-metoden kan element läggas till dynamiskt. Elementen "A", "B", "C", "D" och "E" läggs till med tillsatsmetoden. Ta bort-metoden används för att ta bort ett element från listan. När du passerar 4 till borttagningsmetoden tas brevet i det 4: e indexet som är "E" bort från listan. När iterering genom listan använder for loop, skrivs bokstäverna A, B, C och D.
Liksom ArrayList används LinkedList för att lagra dataelement dynamiskt. Ett objekt skapat med hjälp av LinkedList-klassen får lagra en uppsättning element i listan. Kapaciteten ökar automatiskt, så programmeraren kan lägga till element i listan. Det använder internt dubbelt länkad lista för att lagra data. I en dubbelkopplad lista lagras data som noder. Varje nod innehåller två länkar. Den första länken pekar på föregående nod. 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änssnittet 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 nedan programmet.
Figur 02: Exempel med länklistan
Enligt ovanstående program skapas ett objekt av LinkedList. Med add-metoden kan element läggas till dynamiskt. Elementen "A", "B", "C", "D" och "E" läggs till med tillsatsmetoden. Ta bort-metoden används för att ta bort ett element från listan. När du passerar 4 till borttagningsmetoden tar brevet i det 4: e indexet som är "E" bort från listan. När iterering använder for loop, skrivs bokstäverna A, B, C och D.
ArrayList vs LinkedList | |
ArrayList är en klass som utökar AbstractList och implementerar listgränssnittet som internt använder en dynamisk array för att lagra dataelement. | LinkedList är en klass som utökar AbstractSequentialList och implementerar List, Deque, Que-gränssnitt, som internt använder en dubbelkopplad lista för att lagra dataelement. |
Åtkomst till element | |
Åtkomst till element i ArrayList är snabbare än en LinkedList. | Att komma åt elementen i LinkedList är långsammare än en ArrayList. |
Manipulerande element | |
Manipulera element i ArrayList är långsammare än en LinkedList. | Manipulera element i LinkedList är snabbare än en ArrayList. |
Beteende | |
ArrayList fungerar som en lista. | LinkedList fungerar som en lista och en kö. |
Samlingsramverket tillåter att arbeta med datastrukturer som listor, träd, kartor och uppsättningar. Listan är ett gränssnitt för insamlingsramen. Denna artikel diskuterade skillnaden mellan ArrayList och LinkedList. ArrayList är en klass som utökar AbstractList och implementerar listgränssnittet som internt använder en dynamisk array för att lagra dataelement. LinkedList är en klass som utökar AbstractSequentialList och implementerar List, Deque, Que-gränssnitt, som internt använder en dubbelkopplad lista för att lagra dataelement. Det är skillnaden mellan ArrayList och LinkedList.
1.Introduktion till länklistan | Datastrukturhandledning | Studytonight. Tillgänglig här
2. "LinkedList i Java - javatpoint.",Punkten, Tillgänglig här
3. "Java ArrayList klass - javatpoint." Punkten, Tillgänglig här