Belangrijkste verschil - ArrayList versus LinkedList
Verzamelingen zijn handig voor het opslaan van gegevens. In een normale array ligt de array-grootte vast. Soms is het nodig om arrays te maken die naar behoefte kunnen groeien. Programmeertalen zoals Java hebben collecties. Het is een raamwerk met een reeks klassen en interfaces. Het dient als een container voor een groep elementen. Collecties maken het mogelijk om een reeks elementen op te slaan, bij te werken en op te halen. Het helpt om te werken met datastructuren zoals lijsten, sets, bomen en kaarten. De lijst is een interface van het Collection-framework. ArrayList en LinkedList zijn twee klassen in het verzamelingsraamwerk. Ze implementeren de collectie-interface en de lijst-interface. In dit artikel wordt het verschil tussen ArrayList en LinkedList besproken. ArrayList is een klasse die de AbstractList uitbreidt en de List-interface implementeert, die intern een dynamische array gebruikt om gegevenselementen op te slaan. LinkedList is een klasse die de AbstractSequentialList uitbreidt en List, Deque en Queue-interfaces implementeert, die intern een dubbel gelinkte lijst gebruiken om gegevenselementen op te slaan. Dat is het belangrijkste verschil tussen ArrayList en LinkedList.
INHOUD
1. Overzicht en belangrijkste verschil
2. Wat is ArrayList
3. Wat is LinkedList
4. Overeenkomsten tussen ArrayList en LinkedList
5. Vergelijking zij aan zij - ArrayList versus LinkedList in tabelvorm
6. Samenvatting
Wat is ArrayList?
De klasse ArrayList wordt gebruikt om dynamische arrays te maken. In tegenstelling tot een normale array ligt de grootte van een dynamische array niet vast. Een object dat is gemaakt met de klasse ArrayList, mag een set elementen in de lijst opslaan. De capaciteit neemt automatisch toe, zodat de programmeur elementen aan de lijst kan toevoegen. De klasse ArrayList is een uitbreiding van de klasse AbstractList die de List-interface implementeert. Daarom kunnen de methoden van de List-interface worden gebruikt door ArrayList. Om toegang te krijgen tot elementen, wordt de get () methode gebruikt. De add () methode kan worden gebruikt om elementen aan de lijst toe te voegen. De remove () methode wordt gebruikt om een element uit de lijst te verwijderen. Raadpleeg het onderstaande programma.
Figuur 01: voorbeeld van ArrayList
Volgens het bovenstaande programma wordt een object van ArrayList gemaakt. Met de add-methode kunnen elementen dynamisch worden toegevoegd. De elementen "A", "B", "C", "D" en "E" worden toegevoegd met behulp van de add-methode. De verwijdermethode wordt gebruikt om een element uit de lijst te verwijderen. Wanneer u 4 doorgeeft aan de verwijdermethode, wordt de letter in de 4e index, die "E" is, uit de lijst verwijderd. Bij het doorlopen van de lijst met de for-lus, worden de letters A, B, C en D afgedrukt.
Wat is LinkedList?
Net als bij ArrayList wordt de LinkedList gebruikt om gegevenselementen dynamisch op te slaan. Een object dat is gemaakt met de klasse LinkedList, mag een set elementen in de lijst opslaan. De capaciteit neemt automatisch toe, zodat de programmeur elementen aan de lijst kan toevoegen. Het gebruikt intern een dubbel gelinkte lijst om gegevens op te slaan. In een dubbel gelinkte lijst worden de gegevens opgeslagen als knooppunten. Elk knooppunt bevat twee links. De eerste link verwijst naar het vorige knooppunt. De volgende link verwijst naar het volgende knooppunt in de reeks.
De klasse LinkedList breidt de klasse AbstractSequentialList uit en implementeert de List-interface. Daarom kunnen de methoden van de lijstinterface worden gebruikt door de LinkedList. De methode get () kan worden gebruikt om toegang te krijgen tot elementen van de lijst. De add () methode kan worden gebruikt om elementen aan de lijst toe te voegen. De remove () methode wordt gebruikt om een element uit de lijst te verwijderen. Raadpleeg het onderstaande programma.
Figuur 02: voorbeeld met LinkedList
Volgens het bovenstaande programma wordt een object van LinkedList gemaakt. Met de add-methode kunnen elementen dynamisch worden toegevoegd. De elementen "A", "B", "C", "D" en "E" worden toegevoegd met behulp van de add-methode. De verwijdermethode wordt gebruikt om een element uit de lijst te verwijderen. Wanneer u 4 doorgeeft aan de verwijdermethode, wordt de letter in de 4e index, die "E" is, uit de lijst verwijderd. Bij itereren met de for-lus, worden de letters A, B, C en D afgedrukt.
Wat zijn de overeenkomsten tussen ArrayList en LinkedList?
- Zowel ArrayList als LinkedList implementeren de List-interface.
- Zowel ArrayList als LinkedList kunnen dubbele elementen bevatten.
- Zowel ArrayList als LinkedList handhaven de invoegvolgorde.
Wat is het verschil tussen ArrayList en LinkedList?
Diff Artikel Midden voor Tafel
ArrayList versus LinkedList |
|
ArrayList is een klasse die de AbstractList uitbreidt en de List-interface implementeert die intern een dynamische array gebruikt om gegevenselementen op te slaan. | LinkedList is een klasse die de AbstractSequentialList uitbreidt en List, Deque, Queue-interfaces implementeert, die intern een dubbel gekoppelde lijst gebruikt om gegevenselementen op te slaan. |
Toegang tot elementen | |
Toegang tot elementen van ArrayList is sneller dan van een LinkedList. | Toegang tot elementen van LinkedList is trager dan van een ArrayList. |
Elementen manipuleren | |
Het manipuleren van elementen van ArrayList is langzamer dan van een LinkedList. | Het manipuleren van elementen van LinkedList gaat sneller dan van een ArrayList. |
Gedrag | |
ArrayList werkt als een lijst. | LinkedList fungeert als een lijst en een wachtrij. |
Samenvatting - ArrayList versus LinkedList
Het verzamelframework maakt het mogelijk om te werken met datastructuren zoals lijsten, bomen, kaarten en sets. De lijst is een interface van het verzamelingsraamwerk. In dit artikel is het verschil tussen ArrayList en LinkedList besproken. ArrayList is een klasse die de AbstractList uitbreidt en de List-interface implementeert die intern een dynamische array gebruikt om gegevenselementen op te slaan. LinkedList is een klasse die de AbstractSequentialList uitbreidt en List, Deque, Queue-interfaces implementeert, die intern een dubbel gekoppelde lijst gebruikt om gegevenselementen op te slaan. Dat is het verschil tussen ArrayList en LinkedList.