Forskelle mellem Array vs ArrayList

Array og ArrayList er vigtige datastrukturer, der bruges til at gemme et antal elementer og behandle dem. Men der er centrale forskelle der er mellem dem. En god programmør skal være opmærksom på sammenligningerne mellem dem, så han eller hun effektivt kan beslutte, hvad han skal bruge hvornår og hvorfor.

Array

Arrayet er en datastruktur, hvor vi kan gemme elementer af en given størrelse af en lignende type. For eksempel array af heltalstype, array af strengtyper osv. Derfor er en normal matrix i Java en statisk datastruktur.

ArrayList

En ArrayList er en dynamisk datastruktur, hvor elementer kan tilføjes og fjernes fra listen. Så hvis du ikke er sikker på, hvor mange elementer der vil være der i dit array, vil denne dynamiske datastruktur redde dig.

I denne artikel diskuterer vi forskellene mellem Array og ArrayList i java.

Eksempel til forståelse af både Array og ArrayList

Arrayet er en datastruktur, hvor vi kan gemme elementer af en given fast størrelse af en lignende type.

Kodeeksempel:

Lad os oprette en række fem elementer af int-type. Vi itererer gennem dem ved hjælp af loop

En ArrayList er en dynamisk datastruktur, hvor elementer kan tilføjes og fjernes fra listen. Så hvis du ikke er sikker på, hvor mange elementer der vil være der i dit array, vil denne dynamiske datastruktur redde dig.

Kodeeksempel:

Head to Head forskelle mellem Array og ArrayList (Infographics)

Nedenfor er de største forskelle mellem Array og ArrayList:

Vigtige forskelle mellem Array og ArrayList i Java

1. Fleksibilitet

En matrix er en statisk datastruktur. Når du har defineret størrelsen på matrixen, kan du ikke ændre værdien på dens størrelse. Derfor er en normal matrix i Java en statisk datastruktur, fordi den oprindelige størrelse af arrayet er fast.

På den anden side er ArrayList fleksibel i størrelse. Du kan tilføje eller fjerne elementer fra listen efter din bekvemmelighed. Når vi fjerner elementer fra ArrayList, tildeler vi null til det indeks, hvis værdi fjernes, og hele indeksværdien nedklassificeres automatisk med en. Tilsvarende gælder også for tilføjelse.

2. Gennemførelse

En matrix er en datastruktur, hvor vi kan gemme elementer af en given fast størrelse af en lignende type. En ArrayList er en dynamisk datastruktur, hvor elementer kan tilføjes og fjernes fra listen. Faktisk implementeres ArrayList ved hjælp af en matrix i Java. Du skal importere java.util.ArrayList-pakken for at bruge ArrayList () -metoden til at oprette ArrayList-objekt.

Eksempel på kodestykket af Array

Eksempelkode Uddrag af ArrayList

3. Ydeevne

Selvom ArrayList stort set er baseret på Array, ser vi præstationsforskelle mellem dem. Dette er på grund af lagertypen og funktionaliteten i ArrayList. Vi ser forskelle i ydelse med hensyn til CPU-tid og hukommelsesudnyttelse. Afhængigt af de handlinger, du udfører, varierer udførelsen af ​​Array og ArrayList:

ArrayList kræver mere hukommelse til opbevaringsformål sammenlignet med en matrix. Dette skyldes, at lagring af lignende objekter kræver mere hukommelse end opbevaring af lignende primitive typevariabler.

ændre størrelse (): ArrayList bruger automatisk størrelse, hvor der oprettes en midlertidig matrix til at kopiere elementer fra den gamle matrix til en ny matrix. Dette bremser den samlede ydelse.

get () operation: For indeksbaseret adgang har både ArrayList og array den samme ydelse, da dette kræver konstant tid.

add () operation: Her ser vi nøgleforskellen, da tilføjelse af et nyt element i ArrayList kræver to operationer internt: Kopier og ændr størrelse. Tilføjelse i ArrayList opretter en ny matrix i baggrunden og kopierer elementer fra gamle til en ny matrix.

4. Primitiver

En matrix kan gemme både primitive og objekttyper af elementer. På den anden side kan en ArrayList ikke gemme primitive typer; det kan kun gemme objekter af samme type.

Hvordan kan vi så gemme heltalværdier i en ArrayList?

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

For eksempel:

Derfor udfører autoboxing internt under tingene

5. Type sikkerhed

En matrix kan kun gemme elementer af en lignende type. Hvis du vil gemme forskellige typer elementer i en anden matrix end de specificerede, kaster det ArrayStoreException, mens du opretter objektet for den array. Denne undtagelse vil blive kastet under kørsel, da matrixen ikke er typesikker derfor; der er ingen kontrol af kompileringstid for matrixen.

For eksempel:

På den anden side er ArrayList typesikker, da det sikrer typesikkerhed af generiske produkter. Generics giver kompilatoren mulighed for at kontrollere, om der er nogen uoverensstemmelse i typen under kompilering.

6. Iterering af værdierne

ArrayList bruger iterator () -metoden til at oprette samlingen. Derefter ved hjælp af en stundsløjfe vil vi krydse elementerne en efter en og udskrive værdierne.

På den anden side kan vi bruge til løkke eller for hver løkke til at iterere gennem en matrix.

7. Længde

I mange af anvendelsessagerne er vi muligvis nødt til at få størrelsen på hele matrixen. For Arraylist er denne beregning ganske ligetil. Vi kan få en længde af ArrayList ved hjælp af metoden størrelse ().

På den anden side har hvert array-objekt længdevariablen, som returnerer længden af ​​arrayet.

For eksempel:

8. Tilføjelse af elementer

Tilføjelse eller indsættelse er muligt i ArrayList, da det er en dynamisk datastruktur. Vi kan bruge add () -metoden til at indsætte elementer i en ArrayList efter dens oprettelse.

På den anden side er størrelsen på matrixen fast. Vi kan imidlertid indsætte elementer i en matrix efter tildeling. Vi kan ikke dynamisk tilføje nye elementer ud over størrelsen på en matrix.

For eksempel:

9. Dimension

ArrayList er en-dimensionel. Mens arrayet kan være multidimensionelt.

For eksempel:

Array og ArrayList - Sammenligningstabel

Lad os diskutere den bedste sammenligning mellem Array og ArrayList

Grundlag for sammenligningArrayArrayList
FleksibilitetArrayet er en statisk datastrukturArrayList er en dynamisk datastruktur
primitiverkan gemme både primitiv og objekttype af elementerkan kun gemme objekter af samme type.
Type sikkerhedArrayet kan kun gemme elementer af en lignende type. Ellers kaster det ArrayStoreException, mens det oprettes objektet for den array.ArrayList er typesikker, da det sikrer typesikkerhed af generiske produkter.
Itererer værdiernebruges til loop eller for hver loop for at opnå iteration.Bruger iterator () -metoden til at oprette samlingen
Tilføjelse af elementerkan indsætte elementer i en matrix efter tildeling.Brug add () -metoden til at indsætte elementer i en ArrayList

Dimensionflerdimensionellesingle-dimensional

Konklusion-Array vs ArrayList

Det handler alt om den vigtige sondring mellem en matrix og en ArrayList i Java. Den vigtigste forskel, du skal huske på, er, at matrix er statisk, mens ArrayList er dynamisk. Primært baseret på denne sondring skal du bruge en matrix, hvis du genkender dimensioner forude, hvis du er usikker, skal du blot bruge ArrayList.

Anbefalede artikler

Dette er en guide til Array vs ArrayList. Her diskuterer vi Array vs ArrayList nøgleforskelle med infografik, eksempler og sammenligningstabel. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Java Vector vs ArrayList
  2. C # Array vs Liste
  3. C vs Java
  4. Fordele ved Array
  5. Iterator i Java
  6. Fordelene ved Python Loops | Eksempel

Kategori: