Forskel mellem Array og ArrayList

Hvad er Array og ArrayList?

Både Array og ArrayList er indeksbaserede datastrukturer, der ofte bruges i Java-programmer. Konceptuelt set er ArrayList internt understøttet af matriser, men forståelsen af ​​forskellen mellem de to er nøglen til at blive en stor Java-udvikler. Det er helt det grundlæggende trin til at begynde med, især de begyndere, der lige er begyndt at kode. Mens begge bruges til at gemme elementer i Java, som enten kan være primitiver eller objekter, har de deres retmæssige 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. Denne artikel sammenligner de to om forskellige aspekter, så du kan vælge det ene over det andet.

Forskel mellem Array og Arraylist

  1. resizable

En af de største og mærkbare forskelle mellem de to datastrukturer er, at Array har statisk karakter, hvilket betyder, at det er en datatype med fast længde, mens ArrayList er dynamisk, 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. Det indeholder sekventiel samling af elementer af samme datatype. Arrays i Java fungerer anderledes, end de fungerer i C / C ++. ArrayList kan på den anden side ændre størrelse på sig selv, og matriserne kan vokse efter behov. Da det er en dynamisk datastruktur, kan elementerne tilføjes og fjernes fra listen.

  1. Generics

Du kan ikke oprette arrays af generiske klasser af grænseflader i Java, så arrays og generiske ikke går hånd i hånd, hvilket gør det umuligt at oprette generisk array af den ene grundlæggende årsag til, at arrays er covariant, mens generics er uoverensstemmende. Mens Array er en datastruktur med fast længde, indeholder den objekter af samme klasse eller primitiver af den specifikke datatype. Så hvis du prøver at gemme anden datatype end den, der er angivet, mens du opretter Array-objekt, kaster det simpelthen “ArrayStoreException”. ArrayList understøtter på den anden side Generics for at sikre typesikkerhed.

  1. primitiver

Primitive datatyper som int, dobbelt, lang og char er ikke tilladt i ArrayList. Det holder snarere objekter, og primitiver betragtes ikke som objekter i Java. Arrays kan på den anden side indeholde 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 samlet datatype, der er designet til at indeholde objekter, der kan være af samme eller forskellige type.

  1. Længde

For at få længden på Array skal koden få adgang til længdeattributten, fordi man skal kende længden for at udføre operationer på Array. Mens ArrayList bruger metoden størrelse () til at bestemme størrelsen på ArrayList, er det temmelig anderledes end at bestemme længden af ​​Array. Metodeattributten størrelse () bestemmer antallet af elementer i en ArrayList, som igen er kapaciteten til ArrayList.

For eksempel:

public class ArrayLengthTest

public static void main (String [] args)

ArrayList arrList = ny ArrayList ();

String [] items = “One”, “Two”, “Three”;

for (String str: varer)

arrList.add (str);

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

System.out.println (størrelse);

  1. Implementering

Array er en oprindelig programmeringskomponent i Java, der oprettes dynamisk, og de bruger tildelingsoperatøren til at indeholde elementer, mens ArrayList bruger attributten add () til at indsætte elementer. ArrayList er en klasse fra indsamlingsramme i Java, der bruger et sæt specificerede metoder til at få adgang til og ændre elementerne. Størrelsen på en ArrayList kan øges eller mindskes dynamisk. Elementerne i en matrix gemmes i sammenhængende hukommelsesplacering, og dens størrelse forbliver statisk overalt.

  1. Ydeevne

Mens begge datastrukturer leverer en lignende form for ydeevne, som en ArrayList understøttes af Arrays, har den ene en smule kant over en anden for det meste med hensyn til CPU-tid og hukommelsesbrug. Lad os sige, hvis du kender størrelsen på matrixen, vil du sandsynligvis gå med ArrayList. Imidlertid er iterating over en Array lidt hurtigere end iterating over en ArrayList. Hvis programmet involverer et stort antal primitiver, vil en matrix fungere markant bedre end ArrayList, både hvad angår tid og hukommelse. Arrays er et programmeringssprog på lavt niveau, der kan bruges i indsamlingsimplementeringer. Ydeevnen kan dog variere afhængigt af den handling, du udfører.

Array Vs. ArrayList

Array ArrayList
Array er en datastruktur med fast længde, hvis længde ikke kan ændres, når array-objekt er oprettet. ArrayList er dynamisk, hvilket betyder, at den kan ændre størrelsen på sig selv for at vokse, når det kræves.
Størrelsen på en matrix forbliver statisk i hele programmet. Størrelsen på en ArrayList kan vokse dynamisk afhængigt af belastning og kapacitet.
Den bruger tildelingsoperatør til at gemme elementer. Det bruger attributten add () til at indsætte elementer.
Det kan indeholde primitiver såvel som objekter 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 en-dimensionel.
Det er en indbygget programmeringskomponent, hvor elementerne gemmes i sammenhængende hukommelsesplaceringer. Det er en klasse fra Java-samlingens rammer, hvor objekterne aldrig gemmes på sammenhængende placeringer.
Længdevariabel bruges til at bestemme længden af ​​Array. Metode størrelse () bruges til at bestemme størrelsen på ArrayList.
Tager mindre hukommelse end ArrayList for at gemme specificerede elementer eller objekter. Tager mere hukommelse end Array til at gemme objekter.
Iterering over en matrix er hurtigere end at itereere over en ArrayList. Iterering over en ArrayList er markant langsommere med hensyn til ydeevne.

Resumé

Mens nogle måske tror, ​​at implementering af arrays i et program kan få resultater hurtigere end at gøre det samme med ArrayLists af den enkle grund, at matriser er en datastruktur på lavt niveau, kan ydelsen variere afhængigt af, hvilken operation du udfører. Nå, længden af ​​en array er fast, mens størrelsen på ArrayList kan øges eller reduceres dynamisk, så ArrayList har en lille kant over arrayet med hensyn til funktionalitet. På trods af forskellene deler de imidlertid også nogle ligheder. Begge er indeksbaserede datastrukturer i Java, der giver dig mulighed for at gemme objekter, og de tillader både nulværdier og duplikater. Hvis du ved størrelsen på objekter på forhånd, skal du gå med en matrix, og hvis du ikke er sikker på størrelsen, skal du gå med ArrayList.