Forskellen mellem arraylist og vektor

Arraylist vs Vector

En arraylist kan ses som en dynamisk matrix, der kan vokse i størrelse. På grund af denne grund behøver programmereren ikke at vide størrelsen på arraylisten, når han / hun definerer den. Vektor kan også ses som en matrix, der kan vokse i størrelse. Vektorer kan let tildeles og kan bruges til det, når den krævede størrelse på lageret først er kendt før kørselstid.

Hvad er en arraylist?

En arraylist kan ses som en dynamisk matrix, der kan vokse i størrelse. Derfor er arraylister ideelle til at blive brugt i en situation, hvor du ikke kender størrelsen på de elementer, der kræves på erklæringstidspunktet. I Java kan arraylister kun indeholde objekter, de kan ikke indeholde primitive typer direkte (du kan placere de primitive typer inde i et objekt eller bruge indpakningsklasserne til de primitive typer). Generelt er arraylister forsynet med metoder til at udføre indsættelse, sletning og søgning. Tidskompleksitet ved adgang til et element er o (1), mens indsættelse og sletning har en tidskompleksitet på o (n). I Java kan arraylister krydse ved hjælp af foreach-løkker, iteratorer eller blot ved hjælp af indekserne. I Java blev arraylister introduceret fra version 1.2, og det er en del af Java Collections Framework.

Hvad er en vektor?

Vektor er også en matrix, der kan vokse i størrelse. Vektorer kan let tildeles og kan bruges, når den krævede størrelse på lageret først er kendt før runtime. Vektorer kan også kun indeholde genstande og kan ikke indeholde primitive typer. Vektorer er synkroniserede, og kan derfor bruges sikkert i multitrådede miljøer. Vektorer har metoder til at tilføje objekter, slette objekter og søgeobjekter. I lighed med arraylist i java kan vektorer gennemgås ved hjælp af foreach-løkker, iteratorer eller blot ved hjælp af indekserne. Når det kommer til Java, er vektorer inkluderet siden den første version af Java.

Hvad er forskellen mellem Arraylist og Vector?

Selvom både arraylister og vektorer ligner meget dynamiske arrays, der kan vokse i størrelse, har de nogle vigtige forskelle. Den største forskel mellem arraylister og vektorer er, at vektorerne er synkroniserede, mens arraylister er usynkroniserede. Derfor vil brug af arraylister i multitrådede miljøer ikke være egnet, mens vektorer kan bruges sikkert i multetrådmiljøer (da de er gevindsikre). Men synkronisering i vektorer ville medføre en reduktion i ydelsen. Derfor ville det ikke være en god ide at bruge vektorer i et enkelt gevind miljø. Internt bruger både arraylister og vektorer matriser til at holde genstande. Når det aktuelle rum ikke er nok, vil vektorer fordoble størrelsen på dets interne array, mens arraylister øger størrelsen på dets interne array med 50%. Men når man bruger både arraylister og vektorer, ved at give en passende startkapacitet, kan unødvendig størrelse af den interne array undgås. I en situation, hvor væksthastighed af data er kendt, ville anvendelse af vektorer være mere egnet, da den trinvise værdi af vektorer kunne defineres.