Forskjellen mellom Array og ArrayList

Hva er Array og ArrayList?

Både Array og ArrayList er indeksbaserte datastrukturer som ofte brukes i Java-programmer. Konvensjonelt sett er ArrayList internt støttet av arrayer, men forståelsen av forskjellen mellom de to er nøkkelen til å bli en god Java-utvikler. Det er ganske grunnleggende trinnet til å begynne med, spesielt de nybegynnere som nettopp har startet kodingen. Mens begge brukes til å lagre elementer i Java, som kan være enten primitive eller objekter, har de en rettferdig andel av forskjellene når det gjelder funksjonalitet og ytelse. Den største forskjellen mellom de to er at Array er statisk mens ArrayList er dynamisk i naturen. Denne artikkelen sammenligner de to på ulike sider, slik at du kan velge den ene over den andre.

Forskjellen mellom Array og Arraylist

  1. resizable

En av de store og merkbare forskjellene mellom de to datastrukturene er at Array er statisk i naturen, noe som betyr at det er en datatype med fast lengde, mens ArrayList er dynamisk i naturen, noe som betyr at det er en datastruktur med variabel lengde. I tekniske termer kan lengden på Array ikke endres eller endres når Array-objektet er opprettet. Den inneholder sekvensiell samling av elementer av samme datatype. Arrays i Java fungerer annerledes enn de fungerer i C / C ++. ArrayList, derimot, kan endre størrelsen på seg selv og arrays kan vokse etter hvert som de trengte. Siden det er en dynamisk datastruktur, kan elementene legges til og fjernes fra listen.

  1. Generics

Du kan ikke lage Arrays of Generic klasser av grensesnitt i Java, slik at arrayer og generikk ikke går hånd i hånd, noe som gjør det umulig å lage Generisk Array for den grunnleggende grunnen til at arrays er kovariante mens generikkene er invariant. Mens Array er en datastruktur med fast lengde, inneholder den objekter av samme klasse eller primitiver av den spesifikke datatypen. Så hvis du prøver å lagre annen datatype enn den som ble oppgitt under opprettelsen av Array-objekt, kaster den bare "ArrayStoreException". ArrayList, derimot, støtter Generics for å sikre type sikkerhet.

  1. Primitives

Primitiv datatyper som int, dobbel, lang og karbon er ikke tillatt i ArrayList. Det holder heller objekter, og primitiver anses ikke for gjenstander i Java. Arrays, derimot, kan holde primitive og objekter i Java fordi det er en av de mest effektive datastrukturene i Java for lagring av objekter. Det er en aggregert datatype som er utformet for å holde objekter som kan være av samme eller forskjellige type.

  1. Lengde

For å få lengden på Array må koden få tilgang til lengdeattributtet fordi man må kjenne lengden for å utføre operasjoner på Array. Mens ArrayList bruker size () -metoden for å bestemme størrelsen på ArrayList, er det ganske forskjellig fra å bestemme lengden på Array. Metoden attribut size () (Metode) bestemmer antall elementer i en ArrayList, som igjen er kapasiteten til ArrayList.

For eksempel:

offentlig klasse ArrayLengthTest

offentlig statisk tomrom main (String [] args)

ArrayList arrList = ny ArrayList ();

String [] items = "One", "Two", "Three";

for (String str: items)

arrList.add (str);

int størrelse = items.size ();

System.out.println (størrelse);

  1. Gjennomføring

Array er en innfødt programmeringskomponent i Java som er opprettet dynamisk, og de bruker oppdragsoperatøren til å holde elementer, mens ArrayList bruker add () attributt for å sette inn elementer. ArrayList er en klasse fra samlingsramme i Java som bruker et sett med angitte metoder for å få tilgang til og endre elementene. Størrelsen på en ArrayList kan økes eller reduseres dynamisk. Elementene i en matrise lagres i sammenhengende minneplass og størrelsen forblir statisk gjennom hele.

  1. Opptreden

Mens begge datastrukturene gir lignende type ytelse som en ArrayList støttes av Arrays, har man en liten kant over en annen, hovedsakelig når det gjelder CPU-tid og minnebruk. La oss si, hvis du vet størrelsen på arrayet, vil du sannsynligvis gå med ArrayList. Det er imidlertid litt raskere enn iterating over en ArrayList, å løse over en Array. Hvis programmet omfatter et stort antall primitiver, vil en matrise utføre betydelig bedre enn ArrayList, både når det gjelder tid og minne. Arrays er et lavt programmeringsspråk som kan brukes i samlingsimplementeringer. Prestasjonen kan imidlertid variere avhengig av hvilken operasjon du utfører.

Array Vs. Arraylist

Array Arraylist
Array er en datastruktur med fast lengde, hvis lengde ikke kan endres når arrayobjekt er opprettet. ArrayList er dynamisk i naturen, noe som betyr at den kan endre størrelsen på seg selv når den kreves.
Størrelsen på en matrise forblir statisk gjennom hele programmet. Størrelsen på en ArrayList kan vokse dynamisk avhengig av belastning og kapasitet.
Den bruker oppdragsoperatøren til å lagre elementer. Den bruker attributten add () til å sette inn elementer.
Det kan inneholde primitiver samt objekter av samme eller forskjellige datatype. Primitiver er ikke tillatt i ArrayList. Det kan bare inneholde objekttyper.
Arrays og Generics går ikke hånd i hånd. Generikk er tillatt i ArrayList.
Arrays kan være flerdimensjonale. ArrayList er enkeltdimensjonalt.
Det er en innfødt programmeringskomponent hvor elementene lagres i sammenhengende minnesteder. Det er en klasse fra samlingsrammen til Java der objekter aldri blir lagret i sammenhengende steder.
Lengdevariabel brukes til å bestemme lengden på Array. Størrelse () -metoden brukes til å bestemme størrelsen på ArrayList.
Tar mindre minne enn ArrayList for å lagre spesifiserte elementer eller objekter. Tar mer minne enn Array for å lagre objekter.
Iterating over en array er raskere enn iterating over en ArrayList. Iterering over en ArrayList er betydelig tregere når det gjelder ytelse.

Sammendrag

Mens noen kanskje tror at implementeringsarrayer i et program kan få resultater raskere enn å gjøre det samme med ArrayLists av den enkle grunnen at arrayer er en lav datastruktur, kan ytelsen variere basert på hvilken operasjon du utfører. Vel, lengden på en array er løst, mens størrelsen på ArrayList kan økes eller reduseres dynamisk, så ArrayList har en liten kant over Array når det gjelder funksjonalitet. Til tross for forskjellene deler de likevel likheter. Begge er indeksbaserte datastrukturer i Java som lar deg lagre objekter, og de tillater både nullverdier og duplikater. Vel, hvis du vet størrelsen på objektene på forhånd, bør du gå med en matrise, og hvis du ikke er sikker på størrelsen, gå med ArrayList.