Verschil tussen ArrayList en Vector in Java
Inhoud
ArrayList en Vector zijn beide klassen in de Collection Framework-hiërarchie. ArrayList en Vector, beide worden gebruikt om een dynamische array van objecten te maken waar de array naar behoefte kan groeien. Er zijn twee fundamentele verschillen die ArrayList en Vector onderscheiden, is dat Vector tot Legacy-klassen behoort die later opnieuw zijn ontworpen om de collectieklassen te ondersteunen, terwijl een ArrayList een standaardcollectieklasse is. Een ander belangrijk verschil is dat ArrayList daarentegen niet-gesynchroniseerd is; Vector is gesynchroniseerd.
Laten we enkele andere verschillen bestuderen met behulp van de onderstaande vergelijkingstabel.
- Vergelijkingstabel
- Definitie
- Belangrijkste verschillen
- overeenkomsten
- Gevolgtrekking
Vergelijkingstabel
Basis voor vergelijking | ArrayList | Vector |
---|---|---|
basis- | De klasse ArrayList is niet gesynchroniseerd. | Vectorklasse is gesynchroniseerd. |
Legacy-klasse | ArrayList is een standaardcollectieklasse. | Vector is een legacy-klasse, opnieuw ontworpen om de collectieklasse te ondersteunen. |
Klasse verklaring | class ArrayList | klasse Vector |
herverdeling | Indien niet gespecificeerd, wordt een ArrayList met de helft vergroot. | Indien niet gespecificeerd, wordt een vector opgehoogd om het dubbele te maken. |
Prestatie | Omdat ArrayList niet gesynchroniseerd is, werkt het sneller dan Vector. | Aangezien Vector wordt gesynchroniseerd, werkt het langzamer dan ArrayList. |
Telling / Iterator | ArrayList gebruikt de Iterator-interface om de objecten te doorlopen die zijn opgeslagen in ArrayList. | Vector maakt gebruik van opsomming en een Iterator-interface om de in vectoren opgeslagen objecten te doorlopen. |
Definitie van ArrayList
ArrayList behoort tot de lijst met standaardcollectieklassen. De klasse ArrayList is gedefinieerd in de java.util pakket, het verlengt de AbstractList klasse die ook een standaard verzamelklasse is, en die ook implementeert Lijst, een interface gedefinieerd in Collection Interfaces. In Java heeft een standaardarray altijd een vaste lengte. Dat betekent eenmaal gemaakt; het wordt niet dynamisch groter of kleiner. U moet dus de voorkennis hebben van de lengte van de array die u gebruikt. Maar soms kan het gebeuren dat de vereiste lengte tijdens runtime wordt onthuld, dus om dit soort situaties aan te pakken introduceerde java ArrayList.
De ArrayList is een klasse die wordt gebruikt voor het dynamisch maken van een array die de verwijzingen naar de objecten bevat. Deze array kan in grootte toenemen wanneer dat nodig is. De klasseverklaring is als volgt:
class ArrayList Hier specificeert E het type objecten dat een array zal bevatten. De gecreëerde array heeft een variabele lengte en neemt toe en af in grootte wanneer objecten aan de lijst worden toegevoegd of verwijderd. De ArrayList is niet gesynchroniseerd, wat betekent dat er meerdere threads tegelijkertijd op de array kunnen werken. Als een thread bijvoorbeeld een objectreferentie aan de array toevoegt en een andere thread tegelijkertijd een objectreferentie uit dezelfde array verwijdert. Het maken van een dynamische array met de klasse ArrayList: ArrayList In de bovenstaande code kunt u dat zien; Ik heb een reeks objecten van het type string gemaakt. Ik heb enkele objecten aan de array S1 toegevoegd met de methode add () en later enkele objecten verwijderd met de methode remove (). U kunt observeren dat als u niet de initiële grootte van de array opgeeft, deze een lengte van '0' zal hebben. Zoals u kunt zien, wordt de array groter en kleiner als u de elementen toevoegt en verwijdert. Vector is een Legacy-klasse die opnieuw is ontworpen om de collectieklasse in de Collection Framework-hiërarchie te ondersteunen. De vectorklasse is ook gedefinieerd in java.util pakket, uitgebreid met AbstractList klasse en geïmplementeerd door de Lijst koppel. De Vector-klasse wordt als volgt verklaard: klasse Vector Hier definieert de E het type object dat in een array wordt opgeslagen. Een array met de Vector-klasse heeft een variabele lengte. Het wordt dubbel zo groot als het increment niet is opgegeven. Laten we het maken van een array met Vector begrijpen. Vector In bovenstaande code kun je zien dat ik met name de grootte en incrementwaarde in de constructor van Vector respectievelijk heb genoemd, terwijl ik de array van stringobjecten declareerde. Vandaar dat u kunt zien dat naarmate de limiet van de array eindigt, deze wordt verhoogd met de waarde die tijdens de declaratie aan de constructor wordt verstrekt. Ik concludeer door te zeggen dat het gebruik van ArrayList beter is dan het gebruik van Vector omdat het sneller en beter presteert.
Definitie van Vector
overeenkomsten:
Gevolgtrekking: