Skillnaden mellan arrayer och arraylistor

Skillnaden mellan arrayer och arraylistor
Skillnaden mellan arrayer och arraylistor

Video: Skillnaden mellan arrayer och arraylistor

Video: Skillnaden mellan arrayer och arraylistor
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, Juli
Anonim

Arrays vs Arraylists

Arrayer är den mest använda datastrukturen för att lagra en samling element. De flesta programmeringsspråk tillhandahåller metoder för att enkelt deklarera arrayer och komma åt element i arrayerna. En arraylist kan ses som en dynamisk array, som kan växa i storlek. Av denna anledning behöver programmeraren inte veta storleken på arraylistan när hon definierar den.

Vad är Arrays?

Visas i figur 1, är en kodbit som vanligtvis används för att deklarera och tilldela värden till en array. Figur 2 visar hur en array skulle se ut i minnet.

int-värden[5];

values[0]=100;

values[1]=101;

values[2]=102;

values[3]=103;

values[4]=104;

Figur 1: Kod för att deklarera och tilldela värden till en array

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

Figur 2: Array lagrad i minnet

Ovanför kod definierar en array som kan lagra 5 heltal och de nås med hjälp av index 0 till 4. En viktig egenskap hos en array är att hela arrayen allokeras som ett enda minnesblock och varje element får sin eget utrymme i arrayen. När en array väl har definierats är dess storlek fast. Så om du inte är säker på storleken på arrayen vid kompilering, måste du definiera en tillräckligt stor array för att vara på den säkra sidan. Men för det mesta kommer vi faktiskt att använda mindre antal element än vi har allokerat. Så en ansenlig mängd minne går faktiskt till spillo. Å andra sidan, om "tillräckligt stor array" faktiskt inte är tillräckligt stor, skulle programmet krascha.

Vad är Arraylists?

En arraylist kan ses som en dynamisk array som kan växa i storlek. Därför är arraylistor idealiska att användas i situationer där du inte vet storleken på de element som krävs vid tidpunkten för deklarationen. I Java kan arraylistor bara innehålla objekt, de kan inte hålla primitiva typer direkt (du kan placera de primitiva typerna inuti ett objekt eller använda omslagsklasserna för de primitiva typerna). Generellt är arraylistor försedda med metoder för att utföra infogning, radering och sökning. Tidskomplexiteten för att komma åt ett element är o(1), medan insättning och radering har en tidskomplexitet på o(n). I Java kan arraylistor passeras genom att använda foreach loops, iteratorer eller helt enkelt med hjälp av indexen.

Vad är skillnaden mellan Arrays och Arraylists

Även om arrayerna och arraylistorna är lika i den meningen att de båda används för att lagra samlingar av element, skiljer de sig åt i hur de definieras. Storleken på arrayen måste anges när en array definieras, men du kan definiera en arraylista utan att veta den faktiska storleken. Du kan lägga till element i en arraylista efter att den har definierats och detta är inte möjligt med arrayer. Men i Java kan arraylistor inte hålla primitiva typer, men arrayer kan användas för att hålla primitiva typer. Men om du behöver en datastruktur som kan variera dess storlek är arraylist det bästa valet.

Rekommenderad: