Verschillen tussen Array versus ArrayList

Array en ArrayList zijn belangrijke gegevensstructuren, die worden gebruikt om een ​​aantal elementen op te slaan en deze te verwerken. Maar er zijn belangrijke verschillen zijn er tussen hen. Een goede programmeur moet zich bewust zijn van de vergelijkingen tussen hen, zodat hij of zij effectief kan beslissen wat wanneer en waarom te gebruiken.

reeks

De array is een gegevensstructuur waarin we elementen van een bepaalde grootte van een vergelijkbaar type kunnen opslaan. Bijvoorbeeld een array van het gehele getal, een array van het stringtype, enz. Daarom is een normale array in Java een statische gegevensstructuur.

ArrayList

Een ArrayList is een dynamische gegevensstructuur, waar items kunnen worden toegevoegd en verwijderd uit de lijst. Dus als u niet zeker weet hoeveel elementen er in uw array zullen voorkomen, zal deze dynamische gegevensstructuur u redden.

In dit artikel zullen we de verschillen tussen Array en ArrayList in Java bespreken.

Voorbeeld om zowel Array als ArrayList te begrijpen

De array is een gegevensstructuur waarin we elementen van een gegeven vaste grootte van een vergelijkbaar type kunnen opslaan.

Codevoorbeeld:

Laten we een array van vijf elementen van het type int maken. We zullen ze doorlopen met behulp van voor lus

Een ArrayList is een dynamische gegevensstructuur, waar items kunnen worden toegevoegd en verwijderd uit de lijst. Dus als u niet zeker weet hoeveel elementen er in uw array zullen voorkomen, zal deze dynamische gegevensstructuur u redden.

Codevoorbeeld:

Head to Head verschillen tussen Array en ArrayList (Infographics)

Hieronder worden de belangrijkste verschillen tussen Array en ArrayList weergegeven:

Belangrijkste verschillen tussen Array en ArrayList in Java

1. Flexibiliteit

Een array is een statische gegevensstructuur. Nadat u de grootte van de array hebt gedefinieerd, kunt u de waarde van de array niet meer wijzigen. Daarom is een normale array in Java een statische gegevensstructuur, omdat de oorspronkelijke grootte van de array vast is.

Anderzijds is ArrayList flexibel van formaat. U kunt op uw gemak items uit de lijst toevoegen of verwijderen. Bij het verwijderen van items uit ArrayList, wijzen we null toe aan de index waarvan de waarde wordt verwijderd en wordt de gehele indexwaarde automatisch met één verlaagd. Hetzelfde geldt ook voor de toevoeging.

2. Implementatie

Een array is een gegevensstructuur waarin we elementen van een gegeven vaste grootte van een vergelijkbaar type kunnen opslaan. Een ArrayList is een dynamische gegevensstructuur, waar items kunnen worden toegevoegd en verwijderd uit de lijst. ArrayList is eigenlijk geïmplementeerd met behulp van een array in Java. U moet het pakket java.util.ArrayList importeren om de methode ArrayList () te gebruiken om het ArrayList-object te maken.

Voorbeeld codefragment van Array

Voorbeeld van codefragment van ArrayList

3. Prestaties

Hoewel ArrayList in principe is gebaseerd op Array, zien we prestatieverschillen tussen beide. Dit komt door het opslagtype en de functionaliteit van de ArrayList. We zien prestatieverschillen in termen van CPU-tijd en geheugengebruik. Afhankelijk van de bewerkingen die u uitvoert, variëren de prestaties van Array en ArrayList:

ArrayList vereist meer geheugen voor opslagdoeleinden in vergelijking met een array. Dit komt omdat het opslaan van vergelijkbare objecten meer geheugen vereist dan het opslaan van vergelijkbare variabelen van het primitieve type.

resize () bewerking: ArrayList gebruikt automatisch resize, waarbij een tijdelijke array wordt gemaakt om elementen van de oude array naar een nieuwe array te kopiëren. Dit vertraagt ​​de algehele prestaties.

get () -bewerking: voor op index gebaseerde toegang hebben zowel ArrayList als array dezelfde prestaties, omdat dit constante tijd vereist.

add () bewerking: hier zien we het belangrijkste verschil, omdat voor het toevoegen van een nieuw element in ArrayList twee bewerkingen intern nodig zijn: kopiëren en vergroten / verkleinen. Toevoeging in ArrayList maakt een nieuwe array op de achtergrond en kopieert elementen van oude naar een nieuwe array.

4. Primitieven

Een array kan zowel primitieve als objecttypen van elementen opslaan. Aan de andere kant kan een ArrayList geen primitieve typen opslaan; het kan alleen objecten van hetzelfde type opslaan.

Hoe kunnen we dan gehele waarden opslaan in een ArrayList?

Het antwoord is de autobox- mogelijkheid van JVM. Autoboxing converteert intern primitief naar zijn equivalente objecten.

Bijvoorbeeld:

Vandaar dat autoboxing intern onder de dingen presteert

5. Type Veiligheid

Een array kan alleen elementen van hetzelfde type opslaan. Als u verschillende soorten elementen in een andere array dan de opgegeven elementen wilt opslaan, wordt ArrayStoreException gegenereerd terwijl het object van die array wordt gemaakt. Deze uitzondering wordt tijdens runtime gegenereerd, omdat de array dus niet type-safe is; er is geen compilatiecontrole voor de array.

Bijvoorbeeld:

Aan de andere kant is ArrayList typeveilig, omdat het generieke typenveiligheid garandeert. Met Generics kan de compiler tijdens het compileren controleren of het type niet overeenkomt.

6. De waarden herhalen

ArrayList gebruikt de methode iterator () om de verzameling te maken. Vervolgens zullen we met behulp van een while-lus de elementen één voor één doorkruisen en de waarden afdrukken.

Aan de andere kant kunnen we gebruiken voor lus of voor elke lus om een ​​reeks te doorlopen.

7. Lengte

In veel van de gebruikssituaties moeten we mogelijk de grootte van de hele array bepalen. In het geval van Arraylist is deze berekening vrij eenvoudig. We kunnen een lengte van ArrayList krijgen door de methode size () te gebruiken.

Aan de andere kant heeft elk arrayobject de lengtevariabele, die de lengte van de array retourneert.

Bijvoorbeeld:

8. Toevoegen van elementen

Toevoegen of invoegen is mogelijk in ArrayList omdat het een dynamische gegevensstructuur is. We kunnen de methode add () gebruiken om elementen in een ArrayList in te voegen nadat deze is gemaakt.

Aan de andere kant is de grootte van de array vast. We kunnen echter elementen toewijzen in een array door toewijzing. We kunnen niet dynamisch nieuwe elementen toevoegen die groter zijn dan een array.

Bijvoorbeeld:

9. dimensie

ArrayList is eendimensionaal. Terwijl de array multidimensionaal kan zijn.

Bijvoorbeeld:

Array en ArrayList - Vergelijkingstabel

Laten we de topvergelijking tussen Array en ArrayList bespreken

VergelijkingsbasisreeksArrayList
FlexibiliteitDe array is een statische gegevensstructuurArrayList is een dynamische gegevensstructuur
primitievenkan zowel primitieve als objecttype elementen opslaankan alleen objecten van hetzelfde type opslaan.
Type veiligheidDe array kan alleen elementen van hetzelfde type opslaan. Anders wordt ArrayStoreException geworpen terwijl het object van die array wordt gemaakt.ArrayList is typeveilig, omdat het generieke typenveiligheid garandeert.
De waarden herhalengebruik voor lus of voor elke lus om iteratie te bereiken.Gebruikt de methode iterator () om de verzameling te maken
Elementen toevoegenkan door toewijzing elementen in een array invoegen.gebruik de methode add () om elementen in een ArrayList in te voegen

Dimensiemultidimensionaleeendimensionale

Conclusie-Array versus ArrayList

Dat gaat allemaal over het belangrijke onderscheid tussen een array en een ArrayList in Java. Het belangrijkste onderscheid dat u in gedachten moet houden, is dat de array statisch is, terwijl ArrayList dynamisch van aard is. In de eerste plaats op basis van dit onderscheid, moet u een array gebruiken als u de komende dimensies herkent, als u niet zeker bent, gebruikt u gewoon de ArrayList.

Aanbevolen artikelen

Dit is een gids voor Array vs ArrayList. Hier bespreken we de belangrijkste verschillen tussen Array en ArrayList met infographics, voorbeelden en vergelijkingstabel. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Java Vector versus ArrayList
  2. C # Array versus lijst
  3. C tegen Java
  4. Voordelen van Array
  5. Iterator op Java
  6. Voordelen van Python Loops | Voorbeeld