logo

Verschil tussen Lijst en ArrayList

De Java-collectie biedt een architectuur om met de groep objecten om te gaan. Onder verzameling wordt een enkele eenheid objecten verstaan. Het stelt ons in staat de groep objecten als één geheel op te slaan en te manipuleren.

We kunnen eenvoudig veel bewerkingen uitvoeren, zoals zoeken, sorteren, invoegen, verwijderen en manipuleren op een groep objecten met behulp van het verzamelingsframework.

Het Java Collection-framework biedt verschillende interfaces en klassen. De interfaces bevatten Set, Lijst , Wachtrij, Deque , en klassen bevatten ArrayLijst , Vector , GelinkteLijst , HashSet , BoomSet , LinkedHashSet , En Prioriteits-rij .

hoe de huidige datum in Java te krijgen

In deze sectie onderscheiden we twee elementen van de Collectiekader , dat is Lijst en ArrayList. De Lijst is een interface en ArrayList is een klasse.

Verschil tussen Lijst en ArrayList

Lijstinterface

De Lijst is een onderliggende interface van het Collection-framework waarmee we de geordende verzameling van de objecten kunnen onderhouden. We kunnen de dubbele waarden en null-elementen opslaan met behulp van List. Het biedt een op index gebaseerde methode voor het uitvoeren van invoeg-, verwijder-, zoek- en updatebewerkingen op de objecten.

De lijstinterface vindt plaats in het java.util-pakket. Het implementeert de klassen ArrayList, LinkedList, Stack en Vector. Het is ook een basis van ListIterator-klassen waarmee we de Lijst in voorwaartse en achterwaartse richting kunnen herhalen.

De lijstinterface biedt positionele toegang en het invoegen van elementen en behoudt de invoegvolgorde. Het exemplaar van de lijst kan worden gemaakt met behulp van de implementerende klassen.

Implementatie van lijst:

We kunnen de List-interface implementeren met behulp van de ArrayList, LinkedList, Vector en Stapel klassen .

Om de Lijst-interface te instantiëren, kunnen we de volgende syntaxis gebruiken:

 List list1= new ArrayList(); List list2 = new LinkedList(); List list3 = new Vector(); List list4 = new Stack(); 

Beschouw het onderstaande voorbeeld van Lijst:

 import java.util.*; public class JavaListExample { public static void main(String[] args) { List l = new ArrayList(); //Implementation of List l using ArrayList class l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Uitgang:

10 ml is hoeveel
 [Hello, Java, Tpoint] 

ArrayList-klasse

De klasse ArrayList gebruikt een dynamische array voor het opslaan van de elementen. De klasse ArrayList gedraagt ​​zich als een array, maar er geldt geen maximale grootte. We kunnen de elementen toevoegen of verwijderen wanneer we maar willen. We kunnen het dubbele element opslaan met behulp van de klasse ArrayList. Het beheert de volgorde van plaatsing intern.

De klasse ArrayList is veel flexibeler dan de traditionele array. Het implementeert de List-interface om alle methoden van List Interface te gebruiken. Het vindt plaats in Java .util-pakket.

De klasse ArrayList erft de klasse AbstractList en implementeert de lijstinterface. De elementen ervan zijn willekeurig toegankelijk. Het kan niet worden gebruikt voor primitieve typen zoals int, char, enz.; voor deze gegevenstypen hebben we een wrapperklasse nodig.

Implementatie van ArrayList:

Een klasse ArrayList erft alle methoden van de klasse AbstractList en implementeert de List-interface.

De ArrayList-klasse kan als volgt worden gedeclareerd:

 public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable 

ArrayList kan als volgt worden gedefinieerd:

 ArrayList myList = new ArrayList(); 

Beschouw het onderstaande voorbeeld van ArrayList:

 import java.util.*; public class JavaAL { public static void main(String[] args) { ArrayList l = new ArrayList(); //implementation of ArrayList l.add('Hello'); //adding objects l.add('Java'); l.add('Tpoint'); System.out.println(l); } } 

Uitgang:

 [Hello, Java, Tpoint] 

Enkele belangrijke verschillen tussen de lijstinterface en de ArrayList-klasse

Enkele belangrijke verschillen tussen List en ArrayList zijn als volgt:

  • Een van de belangrijkste verschillen is dat List is een interface en ArrayList is een klasse van het Java Collection-framework.
  • De List breidt het verzamelraamwerk uit , relatief ArrayList breidt de klasse AbstractList uit en implementeert de List-interface .
  • De naamruimte voor de List en ArrayList is respectievelijk System.Collection.Generic en System Collection.
  • Lijst slaat elementen in een reeks op en wordt geïdentificeerd door het individuele indexnummer. Ter vergelijking: ArrayList slaat de elementen op in een dynamische array; het kan groeien wanneer dat nodig is.

Wanneer we de lijst als volgt definiëren:

 List myList = new ArrayList(); 

Dit betekent dat we de methoden en referentieleden alleen vanuit de Lijst-interface kunnen aanroepen.

Als we de ArrayList als volgt definiëren:

converteer int naar dubbele Java
 ArrayList myList = new ArrayList(); 

Het betekent dat we beschikbare methoden in ArrayList kunnen aanroepen en de leden ervan naast de lijst kunnen gebruiken.

Bekijk de onderstaande tabel voor enkele hoofdvergelijkingen tussen List en ArrayList:

Basis van vergelijking Lijst ArrayLijst
Algemeen Het is een interface. Het is klasse.
Werk Er wordt een lijst met objecten gemaakt die toegankelijk zijn via het individuele indexnummer. Het creëert een dynamische array die kan worden uitgebreid wanneer dat nodig is.
Implementatie Lijst lijst1= nieuwe ArrayList(); ArrayList mijnList = nieuwe ArrayList();
Verlengen/implementeren Het breidt het verzamelkader uit. Het breidt de AbstractList-klasse uit en implementeert de List-interface.
Basispakket java.util java.util
Naamruimte Systeem.Verzameling.Generiek Systeem.Verzameling
Prestatie Het zorgt voor een snellere manipulatie van objecten. Het biedt langzame manipulatie van objecten in vergelijking met List.
Instantiatie Het kan niet worden geïnstantieerd. Het kan instant zijn

Conclusie

De lijst is een interface en de ArrayList is een klasse van het Java Collection-framework. De List creëert een statische array en de ArrayList creëert een dynamische array voor het opslaan van de objecten. De lijst kan dus niet worden uitgebreid nadat deze is gemaakt, maar met behulp van de ArrayList kunnen we de array uitbreiden wanneer dat nodig is.

Het is beter om de Lijstinterface te gebruiken als u voordeel wilt halen uit het polymorfisme. Als we in de toekomst de interface moeten implementeren, hoeven we het programma niet te wijzigen.