Verschil tussen Array en ArrayList Verschil tussen

Anonim

Wat is Array en ArrayList?

Zowel Array als ArrayList zijn indexgebaseerde datastructuren die vaak worden gebruikt in Java-programma's. 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 om elementen op te slaan 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.

Verschil tussen Array en Arraylist

  1. Resizable

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 is dynamisch van aard, 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.

  1. Generics

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 om de enige reden waarom arrays covariant zijn terwijl generieke geneesmiddelen invariant zijn. Hoewel Array een gegevensstructuur van vaste lengte is, bevat deze gegevens 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 een Array-object, wordt "ArrayStoreException" gewoon gegooid. ArrayList ondersteunt daarentegen Generics om veiligheid van het type te garanderen.

  1. Primitieven

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.

  1. Lengte

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, verschilt deze nogal van het bepalen van de lengte van de array. Het attribuut size () bepaalt het aantal elementen in een ArrayList, dat op zijn beurt de capaciteit van de ArrayList is.

Voorbeeld :

public class ArrayLengthTest {

public static void main (String [] args) {

ArrayList arrList = new ArrayList ();

String [] items = {"Een", "Twee", "Drie"};

voor (String str: items) {

arrList. toe te voegen (str);

}

int size = items. grootte();

Systeem. uit. println (grootte);

}

}

  1. Implementatie

Array is een native programmeercomponent in Java die dynamisch wordt gemaakt en die toewijzingsoperator gebruikt 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.

  1. Prestaties

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.

Array Vs. Arraylist

Array 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 waarin de objecten nooit worden opgeslagen op aangrenzende locaties.
Lengte-variabele wordt gebruikt om de lengte van de array te bepalen. Grootte () methode 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 is sneller dan itereren via een ArrayList. Itereren over een ArrayList is aanzienlijk langzamer qua prestaties.

Samenvatting

Hoewel sommigen misschien denken dat het implementeren van arrays in een programma sneller resultaten kan opleveren dan hetzelfde met ArrayLists om de eenvoudige reden dat arrays een gegevensstructuur op een laag niveau zijn, kunnen de prestaties variëren op basis van welke bewerking u ' opnieuw optreden. 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 vooraf de grootte van de objecten kent, zou je met een array moeten gaan, en als je niet zeker bent over de grootte, ga dan met de ArrayList.