Arraylist vs Vector
En arraylist kan ses som et dynamisk array, som kan vokse i størrelse. På grund af denne grund behøver programmøren ikke at kende 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, når den krævede størrelse på lageret ikke er kendt før kørselstid.
Hvad er en Arraylist?
En arraylist kan ses som et dynamisk array, som kan vokse i størrelse. Derfor er arraylister ideelle til at blive brugt i situationer, hvor du ikke kender størrelsen på de nødvendige elementer 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 wrapper-klasser af 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 krydses ved hjælp af foreach-sløjfer, 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?
Vector 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 ikke er kendt før kørselstid. Vektorer kan også kun indeholde objekter og kan ikke indeholde primitive typer. Vektorer er synkroniseret og kan derfor bruges sikkert i flertrådede miljøer. Vektorer er forsynet med metoder til at tilføje objekter, slette objekter og søge objekter. På samme måde som arraylist i java kan vektorer krydses ved hjælp af foreach-sløjfer, 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 arraylisterne og vektorerne ligner meget dynamiske arrays, der kan vokse i størrelse, har de nogle vigtige forskelle. Hovedforskellen mellem arraylister og vektorer er, at vektorerne er synkroniserede, mens arraylister er usynkroniserede. Brug af arraylister i flertrådede miljøer vil derfor ikke være egnet, mens vektorer kan bruges sikkert i flertrådede miljøer (da de er trådsikre). Men synkronisering i vektorer vil medføre en reduktion i ydeevne. Derfor ville det ikke være en god ide at bruge vektorer i et enkelt trådmiljø. Internt bruger både arraylister og vektorer arrays til at holde objekter. Når det nuværende 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 du bruger både arraylisterne og vektorerne, ved at give en passende startkapacitet, kan unødvendig ændring af størrelsen på det interne array undgås. I en situation, hvor væksthastighed af data er kendt, ville anvendelse af vektorer være mere passende, da den inkrementelle værdi af vektorer kunne defineres.