Forskjeller mellom Array vs ArrayList

Array og ArrayList er viktige datastrukturer som brukes til å lagre en rekke elementer og behandle disse. Men det er viktige forskjeller er det mellom dem. En god programmerer må være klar over sammenligningene mellom dem slik at han eller hun effektivt kan bestemme hva han skal bruke når og hvorfor.

Array

Arrayet er en datastruktur hvor vi kan lagre elementer av en gitt størrelse av en lignende type. For eksempel matrise av heltallstype, strengetypearray, etc. Derfor er en normal matrise i Java en statisk datastruktur.

Arraylist

En ArrayList er en dynamisk datastruktur, der elementer kan legges til og fjernes fra listen. Så hvis du ikke er sikker på hvor mange elementer som vil være der i matrisen din, vil denne dynamiske datastrukturen redde deg.

I denne artikkelen skal vi diskutere forskjellene mellom Array og ArrayList i java.

Eksempel for å forstå både Array og ArrayList

Arrayet er en datastruktur hvor vi kan lagre elementer med en gitt fast størrelse av lignende type.

Kodeeksempel:

La oss lage en rekke fem elementer av int-type. Vi vil iterere gjennom dem ved bruk for loop

En ArrayList er en dynamisk datastruktur, der elementer kan legges til og fjernes fra listen. Så hvis du ikke er sikker på hvor mange elementer som vil være der i matrisen din, vil denne dynamiske datastrukturen redde deg.

Kodeeksempel:

Head to Head forskjeller mellom Array og ArrayList (Infographics)

Nedenfor er de viktigste forskjellene mellom Array og ArrayList:

Viktige forskjeller mellom Array og ArrayList i Java

1. Fleksibilitet

En matrise er en statisk datastruktur. Når du har definert størrelsen på matrisen, kan du ikke endre verdien på størrelsen. Derfor er en normal matrise i Java en statisk datastruktur, fordi den opprinnelige størrelsen på matrisen er fast.

På den annen side er ArrayList fleksibel i størrelse. Du kan legge til eller fjerne elementer fra listen etter behov. Når vi fjerner elementer fra ArrayList, tilordner vi null til indeksen hvis verdi fjernes, og hele indeksverdien blir nedgradert automatisk. Tilsvarende gjelder for tillegg også.

2. Implementering

En matrise er en datastruktur hvor vi kan lagre elementer av en gitt fast størrelse av lignende type. En ArrayList er en dynamisk datastruktur, der elementer kan legges til og fjernes fra listen. Egentlig implementeres ArrayList ved hjelp av en matrise i Java. Du må importere java.util.ArrayList-pakken for å bruke ArrayList () -metoden for å opprette ArrayList-objekt.

Eksempel på kodestykket av Array

Eksempelkode Utdrag av ArrayList

3. Ytelse

Selv om ArrayList i utgangspunktet er basert på Array, ser vi resultatforskjeller mellom dem. Dette er på grunn av lagringstypen og funksjonaliteten til ArrayList. Vi ser ytelsesforskjeller når det gjelder CPU-tid og minneutnyttelse. Avhengig av operasjonene du utfører, vil ytelsen til Array og ArrayList variere:

ArrayList krever mer minne for lagringsformål sammenlignet med en matrise. Dette er fordi lagring av lignende objekter krever mer minne enn å lagre lignende primitive typevariabler.

endre størrelse () -operasjon: ArrayList bruker automatisk størrelse, der det opprettes en midlertidig matrise for å kopiere elementer fra den gamle matrisen til en ny matrise. Dette bremser den samlede ytelsen.

få () -drift: For indeksbasert tilgang har både ArrayList og array samme ytelse, da dette krever konstant tid.

add () operation: Her ser vi nøkkelforskjellen ettersom det å legge til et nytt element i ArrayList krever to operasjoner internt: Kopier og endre størrelse. Tillegg i ArrayList oppretter en ny matrise i bakgrunnen og kopierer elementer fra gamle til en ny matrise.

4. Primitiver

En matrise kan lagre både primitive og objekttyper av elementer. På den annen side kan en ArrayList ikke lagre primitive typer; den kan bare lagre objekter av samme type.

Så hvordan kan vi lagre heltallverdier i en ArrayList?

Svaret er autoboxing- evnen til JVM. Autoboxing internt konverterer primitivt til dets ekvivalente objekter.

For eksempel:

Derfor utfører autoboksing internt under ting

5. Type sikkerhet

En matrise kan bare lagre elementer av lignende type. Hvis du vil lagre forskjellige typer elementer i en annen matrise enn de spesifiserte, vil den kaste ArrayStoreException mens du lager objektet til den arrayen. Dette unntaket vil bli kastet ved kjøretid, da matrisen ikke er typesikker. ingen kompileringskontroll er det for matrisen.

For eksempel:

På den annen side er ArrayList typesikker, ettersom den sikrer typesikkerhet av generiske stoffer. Generics lar kompilatoren sjekke om det er noe misforhold i typen under samlingen.

6. Itererer verdiene

ArrayList bruker iterator () -metoden for å lage samlingen. Deretter bruker vi en stundsløyfe og krysser elementene en etter en og skriver ut verdiene.

På den annen side kan vi bruke for sløyfe eller for hver sløyfe å iterere gjennom en matrise.

7. Lengde

I mange av brukstilfellene kan det hende vi må få størrelsen på hele matrisen. For Arraylist er denne beregningen ganske rett frem. Vi kan få en lengde på ArrayList ved å bruke metoden størrelse ().

På den annen side har hvert arrayobjekt lengdevariabelen, som returnerer lengden på arrayen.

For eksempel:

8. Legge til elementer

Å legge til eller sette inn er mulig i ArrayList, da det er en dynamisk datastruktur. Vi kan bruke add () -metode for å sette inn elementer i en ArrayList etter opprettelsen.

På den annen side er størrelsen på matrisen fast. Imidlertid kan vi sette inn elementer i en matrise etter oppdrag. Vi kan ikke dynamisk legge til nye elementer utover størrelsen på en matrise.

For eksempel:

9. Dimensjon

ArrayList er endimensjonal. Mens arrayet kan være flerdimensjonalt.

For eksempel:

Array and ArrayList - Sammenligningstabell

La oss diskutere topp sammenligningen mellom Array og ArrayList

Grunnlag for sammenligningArrayArraylist
fleksibilitetArrayen er en statisk datastrukturArrayList er en dynamisk datastruktur
Primitiveskan lagre både primitiv og objekttype elementerkan bare lagre objekter av samme type.
Type sikkerhetArrayet kan bare lagre elementer av lignende type. Ellers vil det kaste ArrayStoreException mens du lager objektet for den arrayen.ArrayList er typesikker, ettersom den sikrer typesikkerhet fra generiske midler.
Itererer verdienebruk for loop eller for hver loop for å oppnå iterasjon.Bruker iterator () -metoden for å lage samlingen
Legge til elementerkan sette inn elementer i en matrise etter oppgave.bruk add () -metoden for å sette inn elementer i en ArrayList

Dimensjonmulti-dimensjonaleendimensjonal

Konklusjon-Array vs ArrayList

Det gjelder alt det viktige skillet mellom en matrise og en ArrayList i Java. Den fremste viktige forskjellen du må huske på er at matrisen er statisk, mens ArrayList er dynamisk. Primært basert på denne skillet, må du bruke en matrise hvis du kjenner igjen dimensjonene fremover. Hvis du er usikker, bruk ganske enkelt ArrayList.

Anbefalte artikler

Dette er en guide til Array vs ArrayList. Her diskuterer vi Array vs ArrayList viktige forskjeller med infografikk, eksempler og sammenligningstabell. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Java Vector vs ArrayList
  2. C # Array vs List
  3. C vs Java
  4. Fordeler med array
  5. Iterator i Java
  6. Fordelene med Python Loops | Eksempel