Skillnader mellan Array vs ArrayList

Array och ArrayList är viktiga datastrukturer som används för att lagra ett antal element och bearbeta dem. Men det finns viktiga skillnader mellan dem. En bra programmerare måste vara medveten om jämförelserna mellan dem så att han eller hon effektivt kan bestämma vad han ska använda när och varför.

Array

Arrayen är en datastruktur där vi kan lagra element av en viss storlek av liknande typ. Till exempel matris av heltalstyp, matris med strängtyp osv. En normal matris i Java är därför en statisk datastruktur.

Arraylist

En ArrayList är en dynamisk datastruktur, där objekt kan läggas till och tas bort från listan. Så om du inte är säker på hur många element som kommer att finnas där i din matris kommer denna dynamiska datastruktur att rädda dig.

I den här artikeln kommer vi att diskutera skillnaderna mellan Array och ArrayList i java.

Exempel för att förstå både Array och ArrayList

Arrayen är en datastruktur där vi kan lagra element med en viss fast storlek av liknande typ.

Kodsexempel:

Låt oss skapa en matris med fem element av intyp. Vi kommer att upprepa dem genom att använda för loop

En ArrayList är en dynamisk datastruktur, där objekt kan läggas till och tas bort från listan. Så om du inte är säker på hur många element som kommer att finnas där i din matris kommer denna dynamiska datastruktur att rädda dig.

Kodsexempel:

Head to Head-skillnader mellan Array och ArrayList (Infographics)

Nedan visas toppskillnader mellan Array och ArrayList:

Viktiga skillnader mellan Array och ArrayList i Java

1. Flexibilitet

En matris är en statisk datastruktur. När du har definierat matrisstorleken kan du inte ändra värdet på dess storlek. Därför är en normal matris i Java en statisk datastruktur, eftersom den ursprungliga storleken på matrisen är fixerad.

Å andra sidan är ArrayList flexibel i storlek. Du kan lägga till eller ta bort objekt från listan enligt din bekvämlighet. När vi tar bort objekt från ArrayList tilldelar vi noll till indexet vars värde tas bort och hela indexvärdet nedgraderas automatiskt med ett. Liknande gäller för tillägg också.

2. Genomförande

En matris är en datastruktur där vi kan lagra element med en viss fast storlek av liknande typ. En ArrayList är en dynamisk datastruktur, där objekt kan läggas till och tas bort från listan. Egentligen implementeras ArrayList med hjälp av en matris i Java. Du måste importera java.util.ArrayList-paketet för att använda metoden ArrayList () för att skapa ArrayList-objekt.

Exempel på kodavsnitt av Array

Exempel på kodavsnitt av ArrayList

3. Prestanda

Även om ArrayList i princip är baserat på Array, ser vi resultatskillnader mellan dem. Detta beror på lagringstypen och funktionaliteten för ArrayList. Vi ser skillnader i prestanda vad gäller CPU-tid och minnesanvändning. Beroende på vilka operationer du utför kommer Array och ArrayList att prestera varierande:

ArrayList kräver mer minne för lagringsändamål jämfört med en matris. Detta beror på att lagring av liknande objekt kräver mer minne än att lagra liknande primitiva typvariabler.

resize () operation: ArrayList använder automatisk storlek, där en tillfällig matris skapas för att kopiera element från den gamla matrisen till en ny matris. Detta bromsar den totala prestandan.

get () operation: För indexbaserad åtkomst har både ArrayList och array samma prestanda, eftersom det kräver konstant tid.

lägg till () operation: Här ser vi nyckelskillnaden eftersom att lägga till ett nytt element i ArrayList kräver två operationer internt: Kopiera och ändra storlek. Tillägg i ArrayList skapar en ny matris i bakgrunden och kopierar element från gamla till en ny matris.

4. Primitiva

En matris kan lagra både primitiva och objekttyper av element. Å andra sidan kan en ArrayList inte lagra primitiva typer; det kan bara lagra objekt av samma typ.

Hur kan vi sedan lagra heltal i en ArrayList?

Svaret är autoboxningskapaciteten för JVM. Autoboxing konverterar internt primitivt till dess ekvivalenta objekt.

Till exempel:

Följaktligen utför autoboxning internt under saker

5. Skriv säkerhet

En matris kan bara lagra element av liknande typ. Om du vill lagra olika typer av element i en annan grupp än de angivna kommer det att kasta ArrayStoreException medan du skapar objektet för den arrayen. Detta undantag kommer att kastas vid körning, eftersom matrisen inte är typsäker; ingen kompileringstidskontroll finns för matrisen.

Till exempel:

Å andra sidan är ArrayList typsäker, eftersom det garanterar typsäkerhet för generiska. Generics tillåter kompilatorn att kontrollera om det finns någon felaktig anpassning i typ under sammanställningen.

6. Iterera värdena

ArrayList använder iterator () -metoden för att skapa samlingen. Sedan använder vi en stund-slinga kommer vi att korsa elementen en efter en och skriva ut värdena.

Å andra sidan kan vi använda för slinga eller för varje slinga för att iterera genom en matris.

7. Längd

I många av användningsfallen kan vi behöva få storleken på hela matrisen. När det gäller Arraylist är denna beräkning ganska rak. Vi kan få en längd på ArrayList genom att använda metoden storlek ().

Å andra sidan har varje arrayobjekt längdvariabeln, som returnerar arrayens längd.

Till exempel:

8. Lägga till element

Lägga till eller infoga är möjligt i ArrayList eftersom det är en dynamisk datastruktur. Vi kan använda add () -metoden för att infoga element i en ArrayList efter skapandet.

Å andra sidan är storleken på matrisen fast. Vi kan dock infoga element i en matris efter uppdrag. Vi kan inte dynamiskt lägga till nya element utöver storleken på en matris.

Till exempel:

9. Dimension

ArrayList är en-dimensionell. Medan arrayen kan vara flerdimensionell.

Till exempel:

Array and ArrayList - Jämförelsetabell

Låt oss diskutera den bästa jämförelsen mellan Array och ArrayList

Grund för jämförelseArrayArraylist
FlexibilitetArrayen är en statisk datastrukturArrayList är en dynamisk datastruktur
Primitiveskan lagra både primitiv och objekttyp av elementkan bara lagra objekt av samma typ.
Typ säkerhetArrayen kan bara lagra element av liknande typ. Annars kommer det att kasta ArrayStoreException medan du skapar objektet för den arrayen.ArrayList är typsäker, eftersom det garanterar typsäkerhet för generiska.
Iterera värdenaanvänd för loop eller för varje slinga för att uppnå iteration.Använder iterator () -metoden för att skapa samlingen
Lägga till elementkan infoga element i en matris efter uppdrag.använd metoden add () för att infoga element i en ArrayList

Dimensioneraflerdimensionellasingle-dimensionell

Slutsats-Array vs ArrayList

Det handlar om den viktiga skillnaden mellan en matris och en ArrayList i Java. Den viktigaste skillnaden du måste tänka på är att matrisen är statisk medan ArrayList är dynamisk. Baserat på denna åtskillnad måste du använda en matris om du känner igen dimensionerna framöver, om du är osäker, använd bara ArrayList.

Rekommenderade artiklar

Detta är en guide till Array vs ArrayList. Här diskuterar vi Array vs ArrayList viktiga skillnader med infografik, exempel och jämförelsetabell. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Java Vector vs ArrayList
  2. C # Array vs List
  3. C vs Java
  4. Fördelar med array
  5. Iterator i Java
  6. Fördelarna med Python Loops | Exempel

Kategori: