Arraylist vs Vector
En matriste kan sees på som en dynamisk matrise som kan vokse i størrelse. Av denne grunn trenger ikke programmereren å vite størrelsen på arraylisten når han / hun definerer den. Vector kan også sees på som en matrise som kan vokse i størrelse. Vektorer kan enkelt tildeles og kan brukes til når ønsket lagringsstørrelse ikke er kjent før kjøretid.
Hva er en Arraylist?
En matriste kan sees på som en dynamisk matrise som kan vokse i størrelse. Derfor er arraylister ideelle for bruk i situasjoner der du ikke vet størrelsen på elementene som kreves på erklæringstidspunktet. I Java kan arraylister bare holde objekter, de kan ikke holde primitive typer direkte (du kan plassere de primitive typene i et objekt eller bruke omslagsklassene til de primitive typene). Generelt er arraylister utstyrt med metoder for å utføre innsetting, sletting og søk. Tidskompleksitet for tilgang til et element er o (1), mens innsetting og sletting har en tidskompleksitet på o (n). I Java kan arraylister krysses ved hjelp av foreach-løkker, iteratorer eller bare ved å bruke indeksene. I Java ble arraylister introdusert fra versjon 1.2, og det er en del av Java Collections Framework.
Hva er en Vector?
Vector er også en matrise som kan vokse i størrelse. Vektorer kan enkelt tildeles og kan brukes når den nødvendige lagringsstørrelsen ikke er kjent før kjøretiden. Vektorer kan også bare holde objekter og kan ikke ha primitive typer. Vektorer er synkronisert, og kan derfor brukes trygt i flertrådede miljøer. Vektorer er utstyrt med metoder for å legge til objekter, slette objekter og søkeobjekter. I likhet med arraylist i java, kan vektorer krysses ved hjelp av foreach-løkker, iteratorer eller bare ved hjelp av indeksene. Når det gjelder Java, har vektorer blitt inkludert siden den første versjonen av Java.
Hva er forskjellen mellom Arraylist og Vector?
Selv om både matriselistene og vektorene er veldig lik dynamiske matriser som kan vokse i størrelse, har de noen viktige forskjeller. Hovedforskjellen mellom arraylister og vektorer er at vektorene er synkronisert mens arraylister er usynkroniserte. Derfor er det ikke egnet å bruke arraylister i flertrådede miljøer, mens vektorer kan brukes trygt i flertrådede miljøer (siden de er trådsikre). Men synkronisering i vektorer vil føre til redusert ytelse. Derfor ville det ikke være en god ide å bruke vektorer i et enkelt gjenget miljø. Internt bruker både arraylister og vektorer arrays for å holde objekter. Når det nåværende rommet ikke er nok, vil vektorer doble størrelsen på det interne arrayet, mens arraylister øker størrelsen på det interne arrayet med 50%. Men når du bruker både arraylister og vektorer, kan unødvendig endring av størrelsen på den interne arrayen unngås ved å gi en passende startkapasitet. I en situasjon hvor veksthastighet på data er kjent, ville bruk av vektorer være mer egnet siden den inkrementelle verdien av vektorer kunne defineres.