Skillnaden mellan ArrayList och LinkedList

Innehållsförteckning:

Skillnaden mellan ArrayList och LinkedList
Skillnaden mellan ArrayList och LinkedList

Video: Skillnaden mellan ArrayList och LinkedList

Video: Skillnaden mellan ArrayList och LinkedList
Video: Java: Array vs ArrayList Difference 2024, Juli
Anonim

Nyckelskillnad – ArrayList vs LinkedList

Samlingar är användbara för att lagra data. I en normal array är arraystorleken fast. Ibland krävs det att skapa arrayer som kan växa efter behov. Programmeringsspråk som Java har samlingar. Det är ett ramverk med en uppsättning klasser och gränssnitt. Den fungerar som en behållare för en grupp av element. Samlingar gör det möjligt att lagra, uppdatera, hämta uppsättning element. Det hjälper att arbeta med datastrukturer som listor, uppsättningar, träd och kartor. Listan är ett gränssnitt för samlingsramverket. ArrayList och LinkedList är två klasser i samlingsramverket. 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 List-, Deque- och Queue-gränssnitt, som internt använder en dubbellänkad lista för att lagra dataelement. Det är den viktigaste skillnaden mellan ArrayList och LinkedList.

Vad är ArrayList?

Klassen ArrayList används för att skapa dynamiska arrayer. Till skillnad från en vanlig array är storleken på en dynamisk array inte fast. Ett objekt skapat med klassen ArrayList tillåts lagra en uppsättning element i listan. Kapaciteten ökar automatiskt, så programmeraren kan lägga till element i listan. Klassen ArrayList utökar klassen AbstractList som implementerar List-gränssnittet. Därför kan metoderna för 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 från listan. Se programmet nedan.

Skillnaden mellan ArrayList och LinkedList
Skillnaden mellan ArrayList och LinkedList
Skillnaden mellan ArrayList och LinkedList
Skillnaden mellan ArrayList och LinkedList

Figur 01: Exempel på ArrayList

Enligt programmet ovan 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. Remove-metoden används för att ta bort ett element från listan. När 4 skickas till borttagningsmetoden tas bokstaven i det 4:e indexet som är "E" bort från listan. När du itererar genom listan med for-slingan kommer bokstäverna A, B, C och D att skrivas ut.

Vad är LinkedList?

I likhet med ArrayList används LinkedList för att lagra dataelement dynamiskt. Ett objekt skapat med klassen LinkedList tillåts lagra en uppsättning element i listan. Kapaciteten ökar automatiskt, så programmeraren kan lägga till element i listan. Den använder internt dubbelt länkad lista för att lagra data. I en dubbellänkad 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 List-grä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 från listan. Se programmet nedan.

Nyckelskillnaden mellan ArrayList och LinkedList
Nyckelskillnaden mellan ArrayList och LinkedList
Nyckelskillnaden mellan ArrayList och LinkedList
Nyckelskillnaden mellan ArrayList och LinkedList

Figur 02: Exempel med LinkedList

Enligt programmet ovan skapas ett objekt för 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 add-metoden. Remove-metoden används för att ta bort ett element från listan. När 4 skickas till borttagningsmetoden tas bokstaven i det 4:e indexet som är "E" bort från listan. När du itererar med for-slingan skrivs bokstäverna A, B, C och D ut.

Vilka är likheterna mellan ArrayList och LinkedList?

  • Både ArrayList och LinkedList implementerar listgränssnitt.
  • Både ArrayList och LinkedList kan innehålla dubbletter av element.
  • Både ArrayList och LinkedList behåller insättningsordningen.

Vad är skillnaden mellan ArrayList och LinkedList?

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 List, Deque, Queue-gränssnitt, som internt använder en dubbellänkad lista för att lagra dataelement.
Åtkomst till element
Åtkomst till element i ArrayList är snabbare än i en LinkedList. Åtkomst till element i LinkedList är långsammare än för en ArrayList.
Manipulating Elements
Manipulation av element i ArrayList är långsammare än i en LinkedList. Manipulation av element i LinkedList är snabbare än i en ArrayList.
Beteende
ArrayList uppträder som en lista. LinkedList uppträder som en lista och en kö.

Sammanfattning – ArrayList vs LinkedList

Insamlingsramverket tillåter arbete med datastrukturer som listor, träd, kartor och uppsättningar. Listan är ett gränssnitt för samlingsramverket. Den här artikeln 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 array för att lagra dataelement. LinkedList är en klass som utökar AbstractSequentialList och implementerar List, Deque, Queue-gränssnitt, som internt använder en dubbelt länkad lista för att lagra dataelement. Det är skillnaden mellan ArrayList och LinkedList.

Rekommenderad: