Zowel Array als ArrayList zijn op een index gebaseerde gegevensstructuren die vaak in Java-programma's worden gebruikt. Conceptueel gesproken wordt ArrayList intern ondersteund door arrays. Het verschil tussen deze twee is echter de sleutel tot een geweldige Java-ontwikkelaar. Het is vrij de basisstap om mee te beginnen, vooral de beginners die net begonnen zijn met coderen. Hoewel beide worden gebruikt voor het opslaan van elementen in Java, die primitieven of objecten kunnen zijn, hebben ze een groot aantal verschillen in functionaliteit en prestaties. Het grote verschil tussen beide is dat Array statisch is terwijl ArrayList een dynamisch karakter heeft. Dit artikel vergelijkt de twee over verschillende aspecten, zodat u de ene boven de andere kunt kiezen.
Een van de belangrijkste en opvallende verschillen tussen de twee datastructuren is dat Array statisch van aard is, wat betekent dat het een gegevenstype met een vaste lengte is, terwijl ArrayList een dynamisch karakter heeft, wat betekent dat het een datalenstructuur met variabele lengte is. In technische termen kan de lengte van de array niet worden gewijzigd of gewijzigd nadat het array-object is gemaakt. Het bevat opeenvolgende verzameling elementen van hetzelfde gegevenstype. Arrays op Java werken anders dan ze werken in C / C ++. ArrayList kan de grootte van het formaat wijzigen en de arrays kunnen groeien zoals ze nodig hebben. Omdat het een dynamische gegevensstructuur is, kunnen de elementen worden toegevoegd en verwijderd uit de lijst.
U kunt geen Arrays of Generic-klassen van interfaces in Java maken, zodat arrays en generieke producten niet hand in hand gaan waardoor het onmogelijk wordt om Generic Array te maken voor de enige basisreden waarom arrays covariant zijn, terwijl generieken onveranderlijk zijn. Hoewel Array een gegevensstructuur van vaste lengte is, bevat deze gegevensobjecten van dezelfde klasse of primitieven van het specifieke gegevenstype. Dus als u verschillende gegevenstypen probeert op te slaan die niet zijn gespecificeerd tijdens het maken van het Array-object, wordt "ArrayStoreException" gewoon gegooid. ArrayList ondersteunt daarentegen Generics om veiligheid van het type te garanderen.
Primitieve gegevenstypen zoals int, double, long en char zijn niet toegestaan in ArrayList. Het bevat eerder objecten en primitieven worden op Java niet als objecten beschouwd. Arrays kunnen daarentegen zowel primitieven als objecten in Java bevatten, omdat dit een van de meest efficiënte gegevensstructuren in Java is voor het opslaan van objecten. Het is een geaggregeerd gegevenstype dat is ontworpen om objecten te bevatten die van hetzelfde of een ander type kunnen zijn.
Om de lengte van de array te krijgen, moet de code toegang hebben tot het kenmerk length, omdat u de lengte moet weten om bewerkingen uit te voeren op array. Hoewel ArrayList de methode size () gebruikt om de grootte van de ArrayList te bepalen, wijkt deze nogal af van het bepalen van de lengte van de array. Het attribuut size () bepaalt het aantal elementen in een ArrayList, wat weer de capaciteit is van de ArrayList.
Bijvoorbeeld:
public class ArrayLengthTest
public static void main (String [] args)
ArrayList arrList = new ArrayList ();
String [] items = "Een", "Twee", "Drie";
for (String str: items)
arrList.add (str);
int size = items.size ();
System.out.println (grootte);
Array is een native programmeercomponent in Java die dynamisch wordt gemaakt en zij gebruiken een toewijzingsoperator om elementen vast te houden, terwijl ArrayList het add () -attribuut gebruikt om elementen in te voegen. ArrayList is een klasse uit het collectiekader in Java die een reeks gespecificeerde methoden gebruikt voor toegang tot en wijziging van de elementen. De grootte van een ArrayList kan dynamisch worden verhoogd of verlaagd. De elementen in een array worden opgeslagen op een aangrenzende geheugenlocatie en de grootte blijft overal statisch.
Hoewel beide gegevensstructuren vergelijkbare prestaties bieden als een ArrayList wordt ondersteund door arrays, heeft de een een klein voordeel ten opzichte van een andere, meestal in termen van CPU-tijd en geheugengebruik. Laten we zeggen dat als je de grootte van de array weet, je waarschijnlijk met de ArrayList meegaat. Het is echter een beetje sneller dan een Array itereren over een ArrayList. Als het programma een groot aantal primitieven omvat, presteert een array aanzienlijk beter dan de ArrayList, zowel in tijd als in geheugen. Arrays zijn een laagwaardige programmeertaal die kan worden gebruikt in verzamelingsimplementaties. De prestaties kunnen echter variëren, afhankelijk van de bewerking die u uitvoert.
reeks | ArrayList |
Array is een gegevensstructuur met een vaste lengte waarvan de lengte niet kan worden gewijzigd zodra een array-object is gemaakt. | ArrayList is dynamisch van aard, wat betekent dat het formaat van het formaat kan worden aangepast om te groeien wanneer dat nodig is. |
De grootte van een array blijft gedurende het hele programma statisch. | De grootte van een ArrayList kan dynamisch groeien afhankelijk van de belasting en capaciteit. |
Het gebruikt toewijzingsoperator om elementen op te slaan. | Het gebruikt het kenmerk add () om elementen in te voegen. |
Het kan zowel primitieven als objecten van hetzelfde of ander gegevenstype bevatten. | Primitieven zijn niet toegestaan in ArrayList. Het kan alleen objecttypen bevatten. |
Arrays en Generics gaan niet hand in hand. | Generics zijn toegestaan in ArrayList. |
Arrays kunnen multidimensionaal zijn. | ArrayList is eendimensionaal. |
Het is een native programmeercomponent waarbij de elementen worden opgeslagen op aangrenzende geheugenlocaties. | Het is een klasse uit het collectiesraamwerk van Java waar de objecten nooit worden opgeslagen op aangrenzende locaties. |
Lengte-variabele wordt gebruikt om de lengte van de array te bepalen. | De methode Size () wordt gebruikt om de grootte van de ArrayList te bepalen. |
Neemt minder geheugen op dan ArrayList om specifieke elementen of objecten op te slaan. | Heeft meer geheugen nodig dan de array om objecten op te slaan. |
Itereren over een array gaat sneller dan itereren via een ArrayList. | Itereren over een ArrayList is aanzienlijk langzamer qua prestaties. |
Hoewel sommigen misschien denken dat het implementeren van arrays in een programma sneller resultaten kan opleveren dan hetzelfde te doen met ArrayLists om de eenvoudige reden dat arrays een gegevensstructuur op een laag niveau zijn, kunnen de prestaties variëren op basis van de bewerking die u uitvoert. Welnu, de lengte van een array is vastgesteld, terwijl de grootte van ArrayList dynamisch kan worden verhoogd of verlaagd, zodat ArrayList een klein voordeel heeft ten opzichte van de array in termen van functionaliteit. Ondanks de verschillen delen ze echter ook enkele overeenkomsten. Beide zijn op een index gebaseerde gegevensstructuren in Java waarmee u objecten kunt opslaan en zowel null-waarden als duplicaten toestaan. Welnu, als je de grootte van de objecten vooraf kent, zou je met een array moeten gaan, en als je niet zeker bent over de grootte, ga dan met de ArrayList.