Arraylist vs Vector
En arrayliste kan sees på som en dynamisk array, som kan vokse i størrelse. På grunn av denne grunn trenger ikke programmereren å vite størrelsen på arraylisten når han/hun definerer den. Vektor kan også sees på som en matrise som kan vokse i størrelse. Vektorer kan enkelt tildeles og kan brukes til når den nødvendige størrelsen på lagringen ikke er kjent før kjøretid.
Hva er en arraylist?
En arrayliste kan sees på som en dynamisk array, 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 inneholde objekter, de kan ikke inneholde primitive typer direkte (du kan legge de primitive typene inne i et objekt eller bruke wrapper-klassene til de primitive typene). Vanligvis er arraylister utstyrt med metoder for å utføre innsetting, sletting og søking. Tidskompleksiteten ved tilgang til et element er o(1), mens innsetting og sletting har en tidskompleksitet på o(n). I Java kan arraylister krysses ved å bruke foreach loops, iteratorer eller ganske enkelt ved å bruke indeksene. I Java ble arraylister introdusert fra versjon 1.2, og det er en del av Java Collections Framework.
Hva er en vektor?
Vector er også en matrise som kan vokse i størrelse. Vektorer kan enkelt tildeles og kan brukes når den nødvendige størrelsen på lagringen ikke er kjent før kjøretid. Vektorer kan også bare inneholde objekter og kan ikke inneholde primitive typer. Vektorer er synkronisert, og kan derfor trygt brukes i flertrådede miljøer. Vektorer er utstyrt med metoder for å legge til objekter, slette objekter og søke etter objekter. I likhet med arraylist i java, kan vektorer krysses ved å bruke foreach-løkker, iteratorer eller ganske enkelt ved å bruke 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 arraylistene og vektorene er veldig like dynamiske arrays som kan vokse i størrelse, har de noen viktige forskjeller. Hovedforskjellen mellom arraylister og vektorer er at vektorene er synkroniserte mens arraylister er usynkroniserte. Derfor vil ikke bruk av arraylister i flertrådede miljøer være egnet, mens vektorer kan brukes trygt i flertrådede miljøer (siden de er trådsikre). Men synkronisering i vektorer vil føre til en reduksjon i ytelse. Derfor ville det ikke være en god idé å bruke vektorer i et enkelt gjenget miljø. Internt bruker både arraylister og vektorer arrays for å holde objekter. Når gjeldende plass ikke er nok, vil vektorer doble størrelsen på den interne matrisen, mens matriselister øker størrelsen på den interne matrisen med 50 %. Men når du bruker både arraylistene og vektorene, ved å gi en passende startkapasitet, kan unødvendig endring av størrelsen på den interne arrayen unngås. I en situasjon hvor dataveksthastigheten er kjent, vil bruk av vektorer være mer egnet siden den inkrementelle verdien til vektorer kan defineres.