Java >> Java tutorial >  >> Tag >> ArrayList

Forskellen mellem Array og ArrayList

Hvis du er blevet forvirret over forskellen mellem Array og ArrayList, så er det følgende uden tvivl noget for dig. Begge bruges til opbevaring af elementer, der kan være genstande. Arrays har en fast længde, mens ArrayList har en variabel længde.

I dette indlæg vil vi se nærmere på begge disse datastrukturer og sammenligne dem også.

ArrayList vs. Array:Et sammenligningsdiagram

Differentieringsgrundlag Array ArrayList
Størrelse på datastruktur En matrix indeholder en datastruktur med fast længde. Størrelsen af ​​Array'et kan ikke ændres, når først objektet er blevet defineret. Det er statisk. Størrelsen af ​​en ArrayList er dynamisk. Elementerne/elementerne i datastrukturen kan ændres for at ændre størrelsen på objektet efter behov.
Ændring af størrelse på egenskab Da en Array-længde er statisk på tværs af programmet, vil dens størrelse forblive uændret. Størrelsen af ​​en ArrayList er i stand til at ændre sig dynamisk baseret på den kapacitet og belastning, den skal fungere med.
Indsættelse og opbevaring af elementer Tildelingsoperatøren tages i brug til lagring af elementer. add() attribut bruges til indsættelse af elementer i en ArrayList.
Datatypernes art En Array kan gemme primitive datatyper såvel som andre objekter, der er af den anden eller samme datatype. ArrayLists kan kun gemme objekttyper. De er ikke i stand til at indeholde primitiver.
Generisk Generiske artikler er ikke kompatible med Arrays. ArrayLists tillader brugen af ​​Generics.
Multidimensional natur Arrays er multidimensionelle. ArrayLists er enkeltdimensionelle.
Opbevaring i sammenhængende hukommelsesplaceringer Et array er en indbygget programmeringskomponent, hvori elementerne er indeholdt i tilstødende hukommelsesplaceringer.
En ArrayList tilhører en klasse, der tilhører Javas samlingsramme. Her er objekterne ude af stand til at blive indeholdt på sammenhængende steder.
Længdebestemmelse Længden variabel er ansvarlig for at bestemme en Arrays længde. Længden af ​​en ArrayList er indstillet af Størrelse () metode.
Opbrugt hukommelse Arrays tager mere hukommelse til lagring af specificerede objekter eller elementer.
ArrayLists tager mindre hukommelsesplads til lagring af objekter eller elementer.
Iteration Iteration på tværs af et array tager kortere tid end hvad det gør i tilfælde af ArrayLists.
Iteration på tværs af en ArrayList tager længere tid, og ydeevnen er langsommere.

Array i JAVA

Arrays er stærkt typedatasamlinger, der består af værdier af samme type. De har en fast længde, som ikke kan ændres under kørsel. Array-elementerne kan tilgås ved at bruge deres indeks, der starter ved nul.

Mens værdien af ​​referenceelementerne holdes på null , er standardværdien for de numeriske array-elementer normalt sat til nul.

Eksempel på Array

Int[ ] intArray =new int [ ] {2};
intArray [0] = 1;
intArray [2] = 2;

ArrayList

En Array-liste er forskellig fra en Array, da den ikke er som en stærkt indtastet samling. Det er et array, der kan ændres størrelse, og som findes i pakken java.util . Den er i stand til at gemme datatyper, der enten ligner eller er forskellige. Dens overordnede størrelse og kvalitet kan falde eller øges dynamisk for at fange værdier af alle størrelser, og det også fra enhver datatype.

En ArrayList-funktion er en af ​​de mest fleksible datastrukturer i C#-samlingerne. Den præsenterer en enkel og nem at implementere liste over værdier.

Når du bruger ArrayList, vil du opdage, at den implementerer IList-grænsefladen, der er kompatibel med Arrays. Du kan bruge det til at ændre, tilføje, indsætte, slette eller se de datatyper, du har indtastet.

I Java kan du få adgang til et element i ArrayList ved hjælp af get() metode.

students.get(3);  

Eksempel på en Array List

ArrayList Arrlst = new ArrayList ( );
Arrlst.Add (“Uma”);
Arrlst.Add (“1”);
Arrlst.Add (“null”);

Array vs. ArrayList:Head-to-head sammenligning

forskellen mellem Array og ArrayList er beskrevet i det følgende afsnit ved hjælp af 8 komparative punkter - størrelse, ydeevne, primitiver, iterator, typesikkerhed, længde, tilføjelse af elementer og multidimensioner.

1. Størrelse

Arrays er statiske i deres længde og størrelse. Det er ikke muligt at ændre deres længde, når først udvikleren har oprettet array-objektet. De indeholder lignende datatypeelementer/elementer, der er blevet defineret sekventielt.

På den anden side er en Array List dynamisk. Et ArrayList-objekt viser en forekomst af variabel kapacitet, der passende afbilder størrelsen af ​​ArrayList. Kapaciteten af ​​ArrayList kan udvides og bliver ved med at vokse automatisk, når der tilføjes flere variabler til den.

2. Ydeevne

Ydeevnen for ArrayList og Array afhænger af den operation, der udføres på dem. For eksempel i resize() drift, reducerer automatisk ændring af størrelsen af ​​ArrayList ydelsen af ​​operationen. Dette sker, fordi det bruger et midlertidigt array til at kopiere elementer til det nye array fra det gamle.

Når du bruger en Array-liste, understøttes den internt af en Array i færd med at kalde den oprindelige implementerede metode som angivet nedenfor:

System.arrayCopy(src,srcPos,dest,destPos,length)

add() eller get() operation: Proceduren med at hente et element fra eller tilføje ethvert element fra ArrayList- eller Array-objektprojekterne har de samme ydeevneniveauer. I tilfælde af et ArrayList-objekt vil operationerne blive udført i konstant tid.

Samlet set er en ArrayList langsommere end en Array.

3. Primitiver

En anden forskel mellem ArrayList og array i Java er, at en ArrayList ikke kan indeholde primitive datatyper såsom int, float, double osv. Den indeholder kun objekter.

På den anden side er Arrays designet til at indeholde både objekter og primitive datatyper sammen.

4. Gentagelse af værdier

Du kan iterere gennem værdierne i en ArrayList ved hjælp af en iterator. Iteratorerne, der returneres af en ArrayList-klasses listeiterator, er fejlhurtige.

På den anden side, kommandoerne 'for hver sløjfe' eller 'for loop' bruges af Java-udviklere til at iterere gennem et array.

5. Typesikkerhed

Java-udviklere finder det nemt at sikre programmeringssprogets typesikkerhedsfunktion ved hjælp af Generics. Her er det vigtigt at forstå, at et array består af stramt-typede lignende eller homogene datastrukturer.

Det kan kun indeholde primitiver, der tilhører specifikke datatyper. Du kan ikke gemme forskellige typer data her. Hvis du prøver det, skal du bruge ArrayStoreException fejl vil blive kastet.

Dette er ikke sandt i tilfælde af ArrayLists.

For eksempel:

String temp[] =  new String[3];  

Dette vil generere en streng-array af størrelse 3

temp[0] = new Integer(12); 

Denne kommando vil kaste ArrayStoreException . Dette skyldes, at koden forsøger at inkludere et heltalsobjekt i String[ ].

6. Længde:

størrelse( ) giver brugerne mulighed for at definere længden af ​​ArrayList. På den anden side bruger Array-objekter length() variabel for at hente længden af ​​det angivne array.

For eksempel

Denne kommando bruger array-objektlængdevariablen

Integer arrayobject [ ] = new Integer[6];
arraylength= arrayobject.length;

Denne kommando bruger ArrayList-objektstørrelsesmetoden

ArrayList  arraylistobject = new ArrayList();
arraylistobject.add(10); 
arraylistobject.size( ); 

7. Tilføjelse af elementer:

Elementer kan indsættes i ArrayList-objektet ved at bruge add( ) metode. I tilfælde af et array kan elementer kun indsættes ved hjælp af en tildelingsoperator.

For eksempel

Integer addarrayobject[ ] = new Integer[8];
addarrayobject[0]= new Integer(3);  

Denne kommando tilføjer et nyt objekt til det angivne array-objekt. Dette er en af ​​de vigtigste forskelle mellem Array og ArrayList.

8. Multidimensionel:

Et array kan være multidimensionelt. Men en ArrayList skal altid være endimensionel.

Her er et eksempel på en multidimensional matrix:

Integer addarrayobject[ ][ ] = new Integer[5][6];
addarrayobject [0][0]= new Integer(8)  

Ligheder mellem ArrayList og Array i Java

Tilføj og hent metode

Ydeevneniveauerne for begge er de samme i dette tilfælde. Begge operationer kører i konstant tid.

Duplikér elementer

Både Array og ArrayList indeholder duplikerede elementer.

Nul værdier

Begge objekter kan indeholde nulværdier. De bruger et indeks til at lave referencer til deres elementer.

Ubeordret

Array og ArrayList garanterer ikke bestilte elementer.

Konklusion

Håber det vil løse alle dine tvivl om forskellen mellem Array og ArrayList. Og hvis du har en teknisk jobsamtale på vej, er du nu godt forberedt!


Java tag