Aanbevolen, 2022

Editor'S Choice

Verschil tussen lijst en ArrayList op Java

Lijst en ArrayList zijn de leden van het Collection-framework. Lijst is een verzameling elementen in een reeks waarin elk element een object is en elementen worden benaderd door hun positie (index). ArrayList maakt een dynamische array van objecten die wanneer nodig groter of kleiner wordt. Het belangrijkste verschil tussen Lijst en ArrayList is dat Lijst een interface is en ArrayList een klasse is. Laten we het verschil tussen de lijst en de ArrayList bestuderen met behulp van de onderstaande vergelijkingsgrafiek.

Vergelijkingstabel

Basis voor vergelijkingLijstArrayList
basis-Lijst is een interfaceArrayList is een standaard collectieklasse.
Syntaxisinterface lijstklasse ArrayList
Verlengen / ImplementerenLijst-interface breidt Collection Framework uit.ArrayList breidt AbstractList uit en implementeert lijstinterface.
namespaceSystem.Collections.Generic.System.Collections.
WerkHet wordt gebruikt om een ​​lijst met elementen (objecten) te maken die aan hun indexnummers zijn gekoppeld.ArrayList wordt gebruikt om een ​​dynamische array te maken die objecten bevat.

Definitie van lijst

Lijst is een interface die het verzamelkader uitbreidt. Lijst-interface beschrijft de verzameling elementen die opeenvolgend zijn gerangschikt. De lijstinterface wordt geïmplementeerd door de volgende standaardcollectieklassen zoals ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . Lijst-interface heeft elementen die zijn gekoppeld aan hun indexnummers. U kunt toegang krijgen tot een element in de lijst door zijn positie (index) in de lijst. Een lijst gemaakt met behulp van Lijst-interface begint met een op nul gebaseerde index.

In aanvulling op de methoden overgenomen door het Collectiekader, definieert de Lijstinterface ook een eigen methode. De methoden die door de lijstinterface worden toegevoegd, zijn add (int, E) en addAll (int, Collection) . Deze methoden voegen een element toe aan de lijst door hun index. Methoden in de lijst kunnen een uitzondering zoals UnsupportedOperationException werpen als de methode de lijst niet kan wijzigen. Wanneer een object in een lijst incompatibel is met een ander object in de lijst, wordt ClassCastException gegenereerd. Null-elementen zijn niet toegestaan ​​in de lijst als u probeert een null-object in de lijst in te voegen, wordt NullPointerException gegenereerd.

U kunt een element uit de lijst verkrijgen met de methode get () . U kunt de waarde van een element in de lijst instellen met de methode set () . U kunt de sublijst ook uit de lijst ophalen met behulp van een methode- sublijst () . Het wordt handig om op de sublijst te werken in plaats van op een lijst.

Definitie van ArrayList

Een van de standaardcollectieklassen is ArrayList die de klasse AbstractList uitbreidt en ook de lijstinterface implementeert. De klasse ArrayList wordt gebruikt om de dynamische arrays te maken die groeien en kleiner worden wanneer dat nodig is. De lijst die met de klasse ArrayList is gemaakt, is niets anders dan de array met objecten. In Java heeft de standaardarray de vaste lengte, dus u moet van tevoren de grootte van de array weten. Maar het kan zijn dat u niet weet welke lengte van de array u nodig heeft tot de uitvoeringstijd. Daarom heeft Collection Framework de klasse ArrayList geïntroduceerd om dit probleem te verhelpen.

ArrayList heeft constructors die de array maken met zijn initiële capaciteit. Hoewel de capaciteit van het object van klasse ArrayList automatisch toeneemt wanneer elementen aan de array worden toegevoegd, kunt u de capaciteit van het object van ArrayList handmatig vergroten met de methode guaranteedCapacity () . Het is beter om de capaciteit van de array aanvankelijk te vergroten in plaats van later het geheugen opnieuw toe te wijzen. Omdat reallocatie duurder is dan het tegelijk toewijzen van het geheugen.

Belangrijkste verschillen tussen lijst en ArrayList

  1. Een van de belangrijkste verschillen tussen Lijst en ArrayList is dat de lijst een interface is en ArrayList een standaardcollectie klasse is .
  2. De lijst-interface breidt het Collectiekader uit, terwijl de ArrayList de AbstractList- klasse uitbreidt en de lijstinterfaces implementeert.
  3. De naamruimte voor Lijst-interface is System.Collection.Generic terwijl de naamruimte voor ArrayList System.Collection is .
  4. Lijst-interface maakt een verzameling elementen die in een reeks wordt opgeslagen en wordt geïdentificeerd of geopend door hun indexnummer. Aan de andere kant maakt ArrayList een array van objecten waarin de array dynamisch kan groeien wanneer dat nodig is.

Conclusie:

De ArrayList lost het probleem van een statische array op in standaard Java, dwz de array kan niet groter worden als deze eenmaal is gemaakt. Wanneer een array wordt gemaakt met behulp van ArrayList, wordt een dynamische array gemaakt die kan groeien en kleiner kan worden als dat nodig is. De standaardcollectielijst ArrayList breidt de lijstinterface uit.

Top