Forskel mellem Array og ArrayList Forskel mellem

Anonim

Hvad er Array og ArrayList?

Både Array og ArrayList er indeksbaserede datastrukturer, der ofte bruges i Java-programmer. Konceptuelt er ArrayList internt støttet af arrayer, men forståelsen af ​​forskellen mellem de to er nøglen til at blive en stor Java-udvikler. Det er helt det grundlæggende skridt til at begynde med, især de begyndere, der lige har startet kodning. Mens begge er vant til at gemme elementer i Java, som kan være enten primitiver eller objekter, har de deres retfærdige andel af forskelle med hensyn til funktionalitet og ydeevne. Den største forskel mellem de to er, at Array er statisk, mens ArrayList er dynamisk i naturen. Denne artikel sammenligner de to på forskellige sider, så du kan vælge den ene over den anden.

Forskel mellem Array og Arraylist

  1. Resizable

En af de store og mærkbare forskelle mellem de to datastrukturer er, at Array er statisk i naturen, hvilket betyder, at det er en fast datatype med fast længde, mens ArrayList er dynamisk i naturen, hvilket betyder, at det er en datastruktur med variabel længde. I tekniske termer kan længden af ​​Array ikke ændres eller ændres, når Array-objektet er oprettet. Den indeholder sekventiel samling af elementer af samme datatype. Arrays i Java virker forskelligt, end de fungerer i C / C ++. ArrayList kan på den anden side ændre størrelsen på sig selv og arrayerne kan vokse, som de har brug for. Da det er en dynamisk datastruktur, kan elementerne tilføjes og fjernes fra listen.

  1. Generics

Du kan ikke oprette Arrays of Generic klasser af grænseflader i Java, så arrays og generics går ikke hånd i hånd, hvilket gør det umuligt at oprette generisk array for den ene grundlæggende årsag til, at arrayer er kovariante mens generikerne er uforanderlige. Mens Array er en datastruktur med fast længde, indeholder den objekter af samme klasse eller primitiver af den specifikke datatype. Så hvis du forsøger at gemme anden datatype end den, der er angivet under oprettelsen af ​​Array-objekt, kaster den blot "ArrayStoreException". ArrayList understøtter derimod Generics for at sikre type sikkerhed.

  1. Primitiver

Primitive datatyper som int, dobbelt, lang og char er ikke tilladt i ArrayList. Det rummer snarere objekter, og primitiver betragtes ikke som objekter i Java. Arrays kan på den anden side holde primitiver såvel som objekter i Java, fordi det er en af ​​de mest effektive datastrukturer i Java til lagring af objekter. Det er en aggregeret datatype, der er designet til at holde objekter, der kan være af samme eller forskellige type.

  1. Længde

For at få længden af ​​arrayet, skal koden have adgang til længdeattributten, fordi man skal vide længden for at udføre operationer på Array.Mens ArrayList bruger size () -metoden til at bestemme størrelsen på ArrayList, er den lidt anderledes end at bestemme længden af ​​Array. Metoden attribut size () -metoden bestemmer antallet af elementer i en ArrayList, som igen er kapaciteten i ArrayList.

For eksempel :

offentlig klasse ArrayLengthTest {

offentlig statisk tomrum hoved (String [] args) {

ArrayList arrList = ny ArrayList ();

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

til (String str: items) {

arrList. tilføje (str);

}

int størrelse = elementer. størrelse();

System. ud. println (størrelse);

}

}

  1. Implementering

Array er en indbygget programmeringskomponent i Java, der oprettes dynamisk, og de bruger assignment operator til at holde elementer, mens ArrayList bruger add () attribut til at indsætte elementer. ArrayList er en klasse fra samlingsramme i Java, der bruger et sæt af specificerede metoder til at få adgang til og ændre elementerne. Størrelsen på en ArrayList kan øges eller formindskes dynamisk. Elementerne i et array gemmes i sammenhængende hukommelsessted, og dets størrelse forbliver statisk i hele.

  1. Ydeevne

Mens begge datastrukturerne giver en lignende form for ydeevne, da en ArrayList understøttes af Arrays, har man en lille kant over en anden, især med hensyn til CPU-tid og hukommelsesforbrug. Lad os sige, hvis du kender størrelsen af ​​arrayet, vil du sandsynligvis gå med ArrayList. Imidlertid er iterering over et Array lidt hurtigere end gentagelse over en ArrayList. Hvis programmet involverer et stort antal primitiver, vil en array udføre sig væsentligt bedre end ArrayList, hvad angår både tid og hukommelse. Arrays er et programmeringssprog på lavt niveau, der kan bruges i indsamling implementeringer. Udførelsen kan dog variere afhængigt af den operation, du udfører.

Array Vs. Arraylist

Array ArrayList
Array er en fast længde datastruktur, hvis længde ikke kan ændres, når arrayobjekt er oprettet. ArrayList er dynamisk i naturen, hvilket betyder, at det kan ændre størrelsen på sig selv for at vokse, når det kræves.
Størrelsen af ​​et array forbliver statisk i hele programmet. Størrelsen på en ArrayList kan vokse dynamisk afhængigt af belastning og kapacitet.
Det bruger opgaveoperatøren til at gemme elementer. Den bruger attributten add () til at indsætte elementer.
Det kan indeholde primitiver såvel som genstande af samme eller forskellige datatype. Primitiver er ikke tilladt i ArrayList. Det kan kun indeholde objekttyper.
Arrays og Generics går ikke hånd i hånd. Generics er tilladt i ArrayList.
Arrays kan være multidimensionale. ArrayList er enkeltdimensionelt.
Det er en indbygget programmeringskomponent, hvor elementerne er gemt i sammenhængende hukommelsessteder. Det er en klasse fra Java-samlingsrammen, hvor objekterne aldrig gemmes i sammenhængende lokationer.
Længdevariabel bruges til at bestemme længden af ​​arrayet. Size () -metoden bruges til at bestemme størrelsen på ArrayList.
Tar mindre hukommelse end ArrayList for at gemme bestemte elementer eller objekter. Går mere hukommelse end arrayet til at gemme objekter.
Iterating over en array er hurtigere end iterating over en ArrayList. Iterating over en ArrayList er signifikant langsommere med hensyn til ydeevne.

Sammenfatning

Selvom nogle måske tror, ​​at implementeringsarrayer i et program kan få resultater hurtigere end at gøre det samme med ArrayLists af den simple grund, at arrayer er en lav datastruktur, kan ydeevnen variere afhængigt af hvilken operation du ' udfører. Nå er længden af ​​et array fast, mens størrelsen af ​​ArrayList kan øges eller formindskes dynamisk, så ArrayList har en lille kant over arrayet med hensyn til funktionalitet. På trods af forskellene deler de dog også nogle ligheder. Begge er indeksbaserede datastrukturer i Java, der giver dig mulighed for at gemme objekter, og de tillader begge null-værdier såvel som dubletter. Nå, hvis du kender størrelsen af ​​objekterne på forhånd, skal du gå med et array, og hvis du ikke er sikker på størrelsen, skal du gå med ArrayList.