Verschil tussen arraylist en vector

Anonim

Arraylist vs Vector

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

Wat is een arraylist?

Een arraylist kan gezien worden als een dynamische array, die in grootte kan groeien. Daarom zijn arraylisten ideaal om te worden gebruikt in situaties waarin u de grootte van de elementen die niet nodig zijn op het moment van de verklaring niet kent. In Java kunnen arraylisten alleen objecten vasthouden, ze kunnen geen primitieve typen rechtstreeks houden (u kunt de primitieve typen binnen een object plaatsen of de wikkelklassen van de primitieve typen gebruiken). Over het algemeen zijn arraylisten voorzien van methoden om invoeging, verwijdering en zoeken uit te voeren. De tijdskomplexiteit van het toegang tot een element is o (1), terwijl invoeging en deletie een tijdskomplexiteit van o (n) heeft. In Java kunnen arraylisten worden overschreden met behulp van foreach loops, iterators of gewoon gebruik maken van de indexen. In Java werden arraylisten geïntroduceerd in versie 1. 2 en het maakt deel uit van het Java Collectie Framework.

Wat is een Vector?

Vector is ook een array die in grootte kan groeien. Vectoren kunnen gemakkelijk worden toegewezen en kunnen gebruikt worden wanneer de vereiste grootte van de opslag niet bekend is tot runtime. Vectoren kunnen ook objecten vasthouden en primitieve typen kunnen niet bevatten. Vectoren zijn gesynchroniseerd, dus kan veilig worden gebruikt in multithreaded omgevingen. 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 door middel van foreach loops, iterators of gewoon gebruik worden gemaakt van de indexen. Als het gaat om Java, zijn vectoren sinds de eerste versie van Java opgenomen.

Wat is het verschil tussen arraylist en vector?

Hoewel zowel de arraylisten als vectoren zeer vergelijkbaar zijn met dynamische arrays die in omvang kunnen groeien, hebben ze enkele belangrijke verschillen. Het belangrijkste verschil tussen arraylisten en vectoren is dat de vectoren gesynchroniseerd zijn, terwijl arraylisten ongesynchroniseerd zijn. Daarom is het gebruik van arraylisten in multithreaded omgevingen niet geschikt, terwijl vectoren veilig kunnen worden gebruikt in multithreaded omgevingen (aangezien ze draadloos zijn). Maar synchronisatie in vectoren zou leiden tot een vermindering van de prestaties. Daarom zou het niet goed zijn om vectoren te gebruiken in een enkele draadomgeving. Intern gebruiken beide arraylisten en 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% verhogen.Maar wanneer u zowel de arraylisten als de vectoren gebruikt, door een geschikte initiële capaciteit te geven, kan onnodige resizing van de interne array worden vermeden. In een situatie die groeitempo data bekend is, zou het gebruik van vectoren meer geschikt zijn, aangezien de incrementele waarde van vectoren kan worden gedefinieerd.