Deze Java List Tutorial legt uit hoe u lijsten in Java kunt maken, initialiseren en afdrukken. De tutorial legt ook een lijst van lijsten met volledige code uit voorbeeld:

Deze tutorial zal u kennis laten maken met de datastructuur ‘list’, een van de basisstructuren in de Java Collection Interface.

een lijst in Java is een reeks elementen volgens een volgorde. De lijst interface van java.,util pakket is degene die deze volgorde van objecten besteld in een bepaalde mode genaamd lijst implementeert.

= > Bekijk hier alle Java Tutorials.

net als arrays kunnen de lijstelementen ook benaderd worden met indices waarvan de eerste index begint op 0. De index geeft een bepaald element aan bij index “i”, dat wil zeggen dat het i-elementen zijn die van het begin van de lijst verwijderd zijn.

enkele kenmerken van de lijst in Java zijn:

  • lijsten kunnen dubbele elementen bevatten.
  • de lijst kan ook’ null ‘ – elementen bevatten.,
  • Lists ondersteunen generics, dat wil zeggen dat u generieke lijsten kunt hebben.
  • u kunt ook gemengde objecten (objecten van verschillende klassen) in dezelfde lijst hebben.
  • lijsten behouden altijd de invoegvolgorde en staan positionele toegang toe.

List in Java

De Java List interface is een subtype van de Java Collection interface. Dit is de standaard interface die de collectie interface van Java erft.

Hieronder is een class diagram van de Java List interface.,

Java List Class Diagram

zoals weergegeven in het bovenstaande class diagram, strekt de Java list interface zich uit van de Collection interface van java.util pakket dat op zijn beurt strekt zich uit van de Iterable interface van de java.util pakket. De klasse AbstractList biedt de skeletachtige implementatie van de lijst interface.

de klassen LinkedList, Stack, Vector, ArrayList en CopyOnWriteArrayList zijn alle implementatieklassen van List interface die vaak worden gebruikt door programmeurs., Er zijn dus vier soorten lijsten in Java, namelijk Stack, LinkedList, ArrayList en Vector.

daarom kunt u, wanneer u een lijstinterface moet implementeren, elk van de bovenstaande lijsttype-klasse implementeren, afhankelijk van de vereisten. Om de functionaliteit van de lijst-interface in uw programma op te nemen, moet u het pakket java importeren.util.,* die lijst interface en andere klassen definities als volgt bevatten:

import java.util.*;

Create & Declare List

We hebben al gezegd dat Lijst Een interface is en wordt geïmplementeerd door klassen zoals ArrayList, Stack, Vector en LinkedList. Daarom kunt u instanties van de lijst declareren en aanmaken op een van de volgende manieren:

List linkedlist = new LinkedList(); List arrayList = new ArrayList();List vec_list = new Vector(); List stck_list = new Stack();

zoals hierboven getoond, kunt u een lijst maken met een van de bovenstaande klassen en deze lijsten initialiseren met waarden., Uit de bovenstaande statements kunt u opmaken dat de volgorde van de elementen zal veranderen afhankelijk van de klasse die wordt gebruikt voor het maken van een instantie van de lijst.

bijvoorbeeld, voor een lijst met stack class is de volgorde Last In, First Out (LIFO).

Initialiseer Java List

U kunt gebruik maken van een van de onderstaande methoden om een lijstobject te initialiseren.

# 1) met behulp van de Aslist methode

de methode asList () wordt al in detail behandeld in het onderwerp Arrays. U kunt een onveranderlijke lijst maken met behulp van de matrixwaarden.,

de algemene syntaxis is:

List<data_type> listname = Arrays.asList(array_name);

Hier moet het data_type overeenkomen met dat van de array.

het bovenstaande statement maakt een onveranderlijke lijst aan. Als je wilt dat de lijst veranderlijk is, dan moet je een instantie van de lijst maken met behulp van new en vervolgens de array-elementen eraan toewijzen met behulp van de aslist methode.

Dit is zoals hieronder getoond:

List<data_type> listname = new ArrayList<> (Arrays.asList(array_name));

laten we een programma in Java implementeren dat de creatie en initialisatie van de lijst toont met behulp van de aslist methode.,

Output:

in het bovenstaande programma hebben we eerst de onveranderlijke lijst gemaakt met behulp van de aslist methode. Vervolgens maken we een veranderlijke lijst door een instantie van ArrayList te maken en dan deze ArrayList te initialiseren met waarden uit de array met behulp van de aslist methode.

merk op dat als de tweede lijst kan worden gewijzigd, we er ook meer waarden aan kunnen toevoegen.

#2) Met behulp van List.add()

zoals reeds vermeld, aangezien de lijst slechts een interface is, kan deze niet worden geïnstalleerd. Maar we kunnen klassen instantiëren die deze interface implementeren., Daarom kunt u de lijst klassen te initialiseren, kunt u hun respectieve toevoegen methoden die een lijst interface methode, maar geà mplementeerd door elk van de klassen.

Als u een gelinkte lijstklasse instantieert zoals hieronder:

List<Integer> llist = new LinkedList<Integer> ();

om een element aan een lijst toe te voegen, kunt u de methode toevoegen als volgt gebruiken:

llist.add(3);

Er is ook een techniek genaamd “Double brace initialization” waarin de lijst wordt geïnstantieerd en geïnitialiseerd door de methode toevoegen aan te roepen in de zelfde verklaring.,

Dit wordt gedaan zoals hieronder getoond:

List<Integer> llist = new LinkedList<Integer> (){{ add(1); add(3);}};

het bovenstaande statement voegt de elementen 1 en 3 toe aan de lijst.

het volgende programma toont de initialisaties van de lijst met behulp van de methode toevoegen. Het maakt ook gebruik van de dubbele brace initialisatie techniek.

uitvoer:

Dit programma heeft drie verschillende lijstdeclaraties, namelijk ArrayList, LinkedList en Stack.

ArrayList en LinkedList objecten worden geïnstalleerd en vervolgens worden de add methoden aangeroepen om elementen aan deze objecten toe te voegen., Voor stack wordt Dubbele brace initialisatie gebruikt waarbij de methode add wordt aangeroepen tijdens de instantiatie zelf.

#3) met behulp van collecties Klasse methoden

De collecties klasse van Java heeft verschillende methoden die kunnen worden gebruikt om de lijst te initialiseren.

enkele van de methoden zijn:

  • addAll

de algemene syntaxis voor Verzamelingen addAll methode is:

List<dataType> listname = Collections.EMPTY_LIST;Collections.addAll(listname = new ArrayList<datatype>(), values…);

Hier voegt u waarden toe aan een lege lijst. De addAll methode neemt de lijst als eerste parameter, gevolgd door de waarden die in de lijst moeten worden ingevoegd.,

  • unmodifiableList ()

de methode ‘unmodifiableList()’ geeft een onveranderlijke lijst terug waaraan de elementen niet kunnen worden toegevoegd of verwijderd.

de algemene syntaxis van deze methode is als volgt:

List<datatype> listname = Collections.unmodifiableList(Arrays.asList(values…));

de methode neemt lijstwaarden als parameters en geeft een lijst terug. Als je probeert om een element toe te voegen of te verwijderen uit deze lijst, dan gooit de compiler een uitzondering UnsupportedOperationException.

  • singletonList ()

de methode ‘singletonList’ geeft een lijst met een enkel element terug. De lijst is onveranderlijk.,

de algemene syntaxis voor deze methode is:

List<datatype> listname = Collections.singletonList(value);

het volgende Java programma toont alle drie methoden van de collecties klasse hierboven besproken.

Output:

# 4) met behulp van Java8 Streams

met de introductie van streams in Java 8, kunt u ook een gegevensstroom construeren en deze verzamelen in een lijst.

het volgende programma toont het aanmaken van een lijst met stream.

Output:

het bovenstaande programma verzamelt de stream van de tekenreeks in een lijst en geeft het terug., Je kunt ook de andere Collectors methodes gebruiken zoals ‘toCollection’,’ unmodifiableList ‘ etc. afgezien van asList in de collect-functie.

#5) Java 9 lijst.of () Method

Een nieuwe methode wordt geïntroduceerd in Java 9, List.van () die een aantal elementen neemt en een lijst construeert. De lijst is onveranderlijk.

uitvoer:

Lijstvoorbeeld

Hieronder is een compleet voorbeeld van het gebruik van een lijstinterface en zijn verschillende methoden.

uitvoer:

de bovenstaande uitvoer toont de verschillende bewerkingen uitgevoerd op een ArrayList. Eerst maakt en initialiseert het de lijst., Vervolgens kopieert het de inhoud van een andere lijst naar deze lijst en verwijdert het ook een element uit de lijst. Ten slotte vervangt het het laatste element in de lijst door een andere waarde.

We zullen de lijstmethoden in detail onderzoeken in onze volgende tutorial.

lijst afdrukken

Er zijn verschillende methoden waarmee u de elementen van de lijst in Java kunt afdrukken.

laten we hier enkele van de methoden bespreken.

#1) met behulp van Lus / Enhanced voor lus

de lijst is een geordende verzameling die toegankelijk is met behulp van indices., U kunt voor lus gebruiken die wordt gebruikt om te herhalen met behulp van de indices om elk element van de lijst af te drukken.

Java heeft een andere versie van for loop, bekend als enhanced for loop, die ook kan worden gebruikt om toegang te krijgen tot en af te drukken op elk element van de lijst.

het onderstaande Java-programma toont het afdrukken van Lijstinhoud met for loop en enhanced for loop.

Output:

# 2) Met behulp van de toString methode

de methode ‘toString()’ van de lijst interface geeft de string representatie van de lijst.

het programma hieronder toont het gebruik van de ToString() methode.,

uitvoer:

lijst geconverteerd naar een Array

de lijst heeft een methode toArray() die de lijst converteert naar een array. Eenmaal geconverteerd naar een array, kunt u de array-methoden gebruiken die in het betreffende onderwerp worden besproken om de inhoud van deze array af te drukken. U kunt gebruiken voor of verbeterd voor loop of zelfs toString methode.

het voorbeeld hieronder gebruikt de toString methode om de inhoud van de matrix af te drukken.

uitvoer:

gebruik makend van Java 8 Streams

Streams worden geïntroduceerd in Java 8. U kunt gebruik maken van streams te lus door de lijst te maken., Er zijn ook lambda ‘ s met behulp waarvan u kunt herhalen door de lijst.

het programma hieronder toont het gebruik van streams om door de lijst te herhalen en de inhoud ervan weer te geven.

uitvoer:

afgezien van de hierboven besproken methoden, kunt u lijstreparators gebruiken om door de lijst te herhalen en de inhoud ervan weer te geven. We zullen een volledig artikel over de lijst iterator in de volgende tutorials.

list Of Lists

Java list interface ondersteunt de ‘list of lists’. In deze, de afzonderlijke elementen van de lijst is weer een lijst. Dit betekent dat u een lijst in een andere lijst kunt hebben.,

dit concept is erg handig wanneer u gegevens uit bijvoorbeeld CSV-bestanden moet lezen. Hier moet u mogelijk meerdere lijsten of lijsten in lijsten lezen en deze vervolgens in het geheugen opslaan. Opnieuw moet u deze gegevens verwerken en terugschrijven naar het bestand. In dergelijke situaties kunt u dus een lijst met lijsten bijhouden om de gegevensverwerking te vereenvoudigen.

het volgende Java programma toont een voorbeeld van een Java lijst met lijsten.

in dit programma hebben we een lijst met lijsten van type String. We maken twee aparte lijsten met typestring en wijzen waarden toe aan deze lijsten., Beide lijsten worden toegevoegd aan de lijst met lijsten met behulp van de methode toevoegen.

om de inhoud van de lijst met lijsten weer te geven, gebruiken we twee lussen. De buitenste lus (foreach) itereert door de lijsten van lijsten die toegang hebben tot de lijsten. De binnenste foreach lus toegang tot de afzonderlijke string elementen van elk van deze lijsten.

Output:

Java list of lists is een klein concept, maar is vooral belangrijk wanneer u complexe gegevens in uw programma moet lezen.

Veelgestelde vragen

Q #1) Wat is een lijst en ingesteld in Java?

antwoord: een lijst is een geordende verzameling elementen., U kunt dubbele elementen in de lijst hebben.

een verzameling is geen geordende verzameling. Elementen in de set zijn niet in een bepaalde volgorde gerangschikt. Ook moeten de elementen in de set uniek zijn. Het staat geen duplicaten toe.

Q #2) Hoe werkt een lijst in Java?

antwoord: de lijst is een interface in Java die zich uitstrekt van de verzameling-interface. De klassen ArrayList, LinkedList, Stack en Vector implementeren de lijst-interface. Zo kan een programmeur deze klassen gebruiken om de functionaliteit van de lijst interface te gebruiken.

Q #3) Wat is een ArrayList in Java?,

antwoord: ArrayList is een dynamische array. Het is een aanpasbare verzameling elementen en implementeert de lijst-interface. ArrayList maakt intern gebruik van een array om de elementen op te slaan.

Q #4) beginnen lijsten op 0 of 1 in Java?

antwoord: lijsten in Java hebben een op nul gebaseerde integer index. Dit betekent dat het eerste element in de lijst op index 0 staat, het tweede element op index 1 enzovoort.

Q #5) Is de lijst geordend?

antwoord: Ja. De lijst is een geordende verzameling elementen., Deze volgorde wordt behouden, tijdens het invoegen van een nieuw element in de lijst,

conclusie

Deze tutorial gaf een inleiding tot de lijst-interface in Java. We bespraken ook de belangrijkste concepten van lijsten zoals het maken, initialiseren van lijsten, afdrukken van lijsten, enz.

in onze komende tutorials zullen we de verschillende methoden bespreken die door de list interface worden geboden. We zullen ook de iteratorconstructie bespreken die wordt gebruikt om het lijstobject te herhalen. We zullen de conversie van lijstobjecten naar andere datastructuren bespreken in onze aankomende tutorial.,

= > bezoek hier om de Java Training Series voor iedereen te zien.