Wat is een arraylist?
Een arraylist in computerprogrammering is een gegevensstructuur die zich als een computerarray gedraagt, 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 toegangsobjecten onmiddellijk te openen met een indexnummer in plaats van een hele reeks gegevens te doorlopen om een volledige gegevens te vinden om een adres te vinden, dat is vereist, dat is vereist, dat is vereist, dat is vereist, dat is vereist, dat is vereist, dat is vereist, dat is vereist, dat vereist ised 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.
Een voordeel van het gebruik van een arraylist ten opzichte van sommige andere gegevensstructuren is dat een wrapper -object niet verplicht is om de gegevens te bevatten die worden 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 zijn ALGelegen 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 zich meerdere keren wijzigen, dus geheugenfragmentatie kan optreden en leiden tot een falen van geheugenallocatie, het stoppen van programma -uitvoering.
De prestaties van een arraylist zijn vergelijkbaar met die van het gebruik van een standaardarray, hoewel de toegangstijden iets langzamer zijn omdat de 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.