Forskjellen mellom arrays og arraylists

Forskjellen mellom arrays og arraylists
Forskjellen mellom arrays og arraylists

Video: Forskjellen mellom arrays og arraylists

Video: Forskjellen mellom arrays og arraylists
Video: Filatov & Karas - Au Au (Official Music Video) 2024, November
Anonim

Arrays vs Arraylists

Arrays er den mest brukte datastrukturen for å lagre en samling av elementer. De fleste programmeringsspråk gir metoder for enkelt å deklarere matriser og få tilgang til elementer i matrisene. En arraylist kan sees på som en dynamisk array, som kan vokse i størrelse. Av denne grunn trenger ikke programmereren å vite størrelsen på arraylisten når hun definerer den.

Hva er matriser?

Vist i figur 1, er et kodestykke som vanligvis brukes til å deklarere og tilordne verdier til en matrise. Figur 2 viser hvordan en matrise vil se ut i minnet.

int-verdier[5];

values[0]=100;

values[1]=101;

values[2]=102;

values[3]=103;

values[4]=104;

Figur 1: Kode for å deklarere og tilordne verdier til en matrise

100 101 102 103 104
Indeks: 0 1 2 3 4

Figur 2: Array lagret i minnet

Over kode, definerer en matrise som kan lagre 5 heltall, og de nås ved å bruke indeksene 0 til 4. En viktig egenskap ved en matrise er at hele matrisen er allokert som en enkelt minneblokk og hvert element får sin egen plass i matrisen. Når en matrise er definert, er størrelsen fast. Så hvis du ikke er sikker på størrelsen på matrisen på kompileringstidspunktet, må du definere en stor nok matrise til å være på den sikre siden. Men de fleste gangene kommer vi faktisk til å bruke mindre antall elementer enn vi har tildelt. Så en betydelig mengde minne er faktisk bortkastet. På den annen side, hvis "stor nok array" faktisk ikke er stor nok, ville programmet krasje.

Hva er arraylists?

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.

Hva er forskjellen mellom Arrays og Arraylists

Selv om arrayene og arraylistene er like i den forstand at de begge brukes til å lagre samlinger av elementer, er de forskjellige i hvordan de er definert. Størrelsen på matrisen må oppgis når en matrise er definert, men du kan definere en matriseliste uten å vite den faktiske størrelsen. Du kan legge til elementer i en matriseliste etter at den er definert, og dette er ikke mulig med matriser. Men i Java kan ikke arraylister inneholde primitive typer, men arrays kan brukes til å holde primitive typer. Men hvis du trenger en datastruktur som kan variere størrelsen, vil arraylist være det beste valget.

Anbefalt: