Skip to main content

Wat is een arraylist?

Een arraylist in computerprogrammering is een gegevensstructuur die zich gedraagt als een computerarray, maar ook de mogelijkheid implementeert om de grootte van de array dynamisch te laten groeien als dat nodig is.In tegenstelling tot een intrinsiek array -gegevenstype, dat niet kan worden aangepast tijdens de uitvoering van het programma, kan de arrayliststructuur groeien en de grootte van de array krimpen in reactie op de toevoeging of verwijdering van elementen.Het heeft een zeer gunstig prestatieprofiel, waardoor snelle willekeurige toegang tot de gegevensverzameling mogelijk is.Er zijn echter twee instanties waarin het langzamer is dan sommige andere gegevensstructuren, namelijk de toevoeging en verwijdering van elementen uit het midden van de array.De meeste objectgeoriënteerde programmeertalen hebben een soort implementatie van een dergelijke lijst, hoewel ze soms dynamische arrays worden genoemd.

Het gebruik van een arraylist biedt een programma met de mogelijkheid om onmiddellijk toegang te krijgen tot gegevensobjecten met een indexnummer in plaats van door te lopenEen hele reeks gegevens om een adres te vinden, dat vereist is met gekoppelde lijsten.Met de mogelijkheid om de grootte van de array te vergroten als dat nodig is, is het een zeer evenwichtige aanpak die zowel flexibiliteit als snelheid overweegt.Wanneer elementen uit een dergelijke lijst worden verwijderd, wordt bovendien de grootte van de array verminderd, waardoor geheugenruimte wordt vrijgemaakt.

Eén voordeel van het gebruik van een arraylist boven sommige andere gegevensstructuren is dat een wrapper -object niet nodig is om de gegevens te bevatten.opgeslagen.In het geval van een gekoppelde lijst of een hashtabel is meestal een apart object nodig om de techniek te behouden die wordt gebruikt om de collectie vast te houden en te manipuleren.Met een arraylist is de enige informatie die nodig is over de gegevensobjecten het adres van het object in het geheugen.Dit betekent dat er minder overhead geheugengebruik zal zijn bij het werken met dit type lijst.

Een potentieel probleem met het gebruik van een arraylist kan afkomstig zijn van het implementatie- en geheugenbeheersysteem.De meeste arrays worden toegewezen als opeenvolgende geheugenlocaties.Dus, om een arraylist van een bepaalde grootte te gebruiken, moet tenminste dat veel geheugen beschikbaar zijn in een ononderbroken reeks blokken.De dynamische array kan zichzelf meerdere keren wijzigen, dus geheugenfragmentatie kan optreden en leiden tot een falen van geheugenallocatie, het stoppen van het programma -uitvoering.

De prestaties van een arraylist zijn vergelijkbaar met die van het gebruik van een standaardarray, hoewel de toegangstijden iets langzamer zijn omdat omdat er iets langzamer is omdatDe array is ingekapseld in een object.Een exemplaar waarin een dynamische array dramatisch kan vertragen, afhankelijk van de implementatie, is wanneer de grootte van de array moet worden gewijzigd.Dit kan het kopiëren van de huidige array in een nieuwe array inhouden die werd toegewezen aan de nieuwe gewenste grootte, wat een tijdelijke degradatie in de prestaties veroorzaakt.Hetzelfde probleem kan worden ervaren bij het toevoegen of verwijderen van een element uit het midden van de lijst, waardoor alle volgende elementen naar een nieuwe locatie moeten worden verplaatst.