Verschil tussen arraylijst en vector

Verschil tussen arraylijst en vector
Verschil tussen arraylijst en vector

Video: Verschil tussen arraylijst en vector

Video: Verschil tussen arraylijst en vector
Video: Array vs. ArrayList in Java Tutorial - What's The Difference? 2024, November
Anonim

Arraylist vs Vector

Een arraylist kan worden gezien als een dynamische array, die in omvang kan groeien. Om deze reden hoeft de programmeur de grootte van de arraylist niet te kennen wanneer hij/zij deze definieert. Vector kan ook worden gezien als een array die in omvang kan groeien. Vectoren kunnen eenvoudig worden toegewezen en kunnen worden gebruikt wanneer de vereiste grootte van de opslag pas tijdens runtime bekend is.

Wat is een arraylijst?

Een arraylist kan worden gezien als een dynamische array, die in omvang kan groeien. Daarom zijn arraylists ideaal om te gebruiken in situaties waarin u de grootte van de vereiste elementen op het moment van declaratie niet weet. In Java kunnen arraylijsten alleen objecten bevatten, ze kunnen primitieve typen niet rechtstreeks bevatten (u kunt de primitieve typen in een object plaatsen of de wrapper-klassen van de primitieve typen gebruiken). Over het algemeen zijn arraylists voorzien van methoden om invoeging, verwijdering en zoeken uit te voeren. De tijdscomplexiteit van toegang tot een element is o(1), terwijl invoegen en verwijderen een tijdscomplexiteit heeft van o(n). In Java kunnen arraylijsten worden doorlopen met behulp van foreach-lussen, iterators of gewoon met behulp van de indexen. In Java werden arraylijsten geïntroduceerd vanaf versie 1.2 en het maakt deel uit van het Java Collections Framework.

Wat is een Vector?

Vector is ook een array die in omvang kan groeien. Vectoren kunnen eenvoudig worden toegewezen en kunnen worden gebruikt wanneer de vereiste grootte van de opslag pas tijdens runtime bekend is. Vectoren kunnen ook alleen objecten bevatten en kunnen geen primitieve typen bevatten. Vectoren zijn gesynchroniseerd en kunnen daarom veilig worden gebruikt in omgevingen met meerdere threads. Vectoren zijn voorzien van methoden om objecten toe te voegen, objecten te verwijderen en objecten te zoeken. Net als bij arraylist in Java, kunnen vectoren worden doorkruist met behulp van foreach-lussen, iterators of gewoon met behulp van de indexen. Als het op Java aankomt, zijn vectoren opgenomen sinds de eerste versie van Java.

Wat is het verschil tussen Arraylist en Vector?

Hoewel zowel de arraylijsten als vectoren erg lijken op dynamische arrays die in omvang kunnen groeien, hebben ze enkele belangrijke verschillen. Het belangrijkste verschil tussen arraylists en vectoren is dat de vectoren gesynchroniseerd zijn, terwijl arraylists niet gesynchroniseerd zijn. Daarom is het gebruik van arraylists in multithreaded-omgevingen niet geschikt, terwijl vectoren veilig kunnen worden gebruikt in multithreaded-omgevingen (omdat ze thread-safe zijn). Maar synchronisatie in vectoren zou een vermindering van de prestaties veroorzaken. Daarom zou het geen goed idee zijn om vectoren te gebruiken in een omgeving met één thread. Intern gebruiken zowel arraylists als vectoren arrays om objecten vast te houden. Als de huidige ruimte niet genoeg is, zullen vectoren de grootte van de interne array verdubbelen, terwijl arraylists de grootte van de interne array met 50% vergroten. Maar wanneer zowel de arraylists als vectoren worden gebruikt, door een geschikte initiële capaciteit te geven, kan onnodige resizen van de interne array worden vermeden. In een situatie dat de groeisnelheid van gegevens bekend is, zou het gebruik van vectoren geschikter zijn omdat de incrementele waarde van vectoren zou kunnen worden gedefinieerd.

Aanbevolen: