Java LinkedList
Java LinkedList
In deze tutorial leren we in detail over de Java LinkedList aan de hand van voorbeelden.
De LinkedList
klasse van het Java-verzamelingsraamwerk biedt de functionaliteit van de gegevensstructuur van de gekoppelde lijst (dubbel gekoppelde lijst).

Elk element in een gekoppelde lijst staat bekend als een knooppunt . Het bestaat uit 3 velden:
- Vorige - slaat een adres op van het vorige element in de lijst. Het is
null
voor het eerste element - Volgende - slaat een adres op van het volgende element in de lijst. Het is
null
voor het laatste element - Gegevens - slaat de werkelijke gegevens op
Een Java LinkedList maken
Hier is hoe we gelinkte lijsten in Java kunnen maken:
LinkedList<Type> linkedList = new LinkedList<>();
Hier, Type geeft het type van een gekoppelde lijst aan. Bijvoorbeeld,
// create Integer type linked list
LinkedList<Integer> linkedList = new LinkedList<>();
// create String type linked list
LinkedList<String> linkedList = new LinkedList<>();
Voorbeeld:LinkedList maken in Java
import java.util.LinkedList;
class Main {
public static void main(String[] args){
// create linkedlist
LinkedList<String> animals = new LinkedList<>();
// Add elements to LinkedList
animals.add("Dog");
animals.add("Cat");
animals.add("Cow");
System.out.println("LinkedList: " + animals);
}
}
Uitvoer
LinkedList: [Dog, Cat, Cow]
In het bovenstaande voorbeeld hebben we een LinkedList
. gemaakt met de naam dieren .
Hier hebben we de add()
. gebruikt methode om elementen aan de LinkedList toe te voegen. We zullen meer leren over de add()
methode verderop in deze tutorial.
Werken van een Java LinkedList
Elementen in gekoppelde lijsten worden niet op volgorde opgeslagen. In plaats daarvan zijn ze verspreid en verbonden via links (Vorige en Volgende ).

Hier hebben we 3 elementen in een gekoppelde lijst.
- Hond - het is het eerste element dat null . bevat als vorig adres en het adres van Cat als het volgende adres
- Kat - het is het tweede element dat een adres bevat van Hond als het vorige adres en het adres van Koe als het volgende adres
- Koe - het is het laatste element met het adres van Cat als het vorige adres en null als het volgende element
Ga voor meer informatie naar de LinkedList-gegevensstructuur.
Methoden van Java LinkedList
LinkedList
biedt verschillende methoden waarmee we verschillende bewerkingen in gekoppelde lijsten kunnen uitvoeren. We zullen in deze tutorial kijken naar vier veelgebruikte LinkedList-operators:
- Elementen toevoegen
- Toegangselementen
- Verander elementen
- Elementen verwijderen
1. Voeg elementen toe aan een LinkedList
We kunnen de add()
. gebruiken methode om een element (node) toe te voegen aan het einde van de LinkedList. Bijvoorbeeld,
import java.util.LinkedList;
class Main {
public static void main(String[] args){
// create linkedlist
LinkedList<String> animals = new LinkedList<>();
// add() method without the index parameter
animals.add("Dog");
animals.add("Cat");
animals.add("Cow");
System.out.println("LinkedList: " + animals);
// add() method with the index parameter
animals.add(1, "Horse");
System.out.println("Updated LinkedList: " + animals);
}
}
Uitvoer
LinkedList: [Dog, Cat, Cow] Updated LinkedList: [Dog, Horse, Cat, Cow]
In het bovenstaande voorbeeld hebben we een LinkedList gemaakt met de naam dieren . Hier hebben we de add()
. gebruikt methode om elementen toe te voegen aan dieren .
Let op de verklaring,
animals.add(1, "Horse");
Hier hebben we het indexnummer . gebruikt parameter. Het is een optionele parameter die de positie specificeert waar het nieuwe element wordt toegevoegd.
Ga voor meer informatie over het toevoegen van elementen aan LinkedList naar Java-programma om elementen aan LinkedList toe te voegen.
2. Toegang tot LinkedList-elementen
De get()
methode van de klasse LinkedList wordt gebruikt om toegang te krijgen tot een element uit de LinkedList. Bijvoorbeeld,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> languages = new LinkedList<>();
// add elements in the linked list
languages.add("Python");
languages.add("Java");
languages.add("JavaScript");
System.out.println("LinkedList: " + languages);
// get the element from the linked list
String str = languages.get(1);
System.out.print("Element at index 1: " + str);
}
}
Uitvoer
LinkedList: [Python, Java, JavaScript] Element at index 1: Java
In het bovenstaande voorbeeld hebben we de get()
. gebruikt methode met parameter 1 . Hier retourneert de methode het element op index 1 .
We hebben ook toegang tot elementen van de LinkedList met behulp van de iterator()
en de listIterator()
methode. Ga voor meer informatie naar het Java-programma om toegang te krijgen tot elementen van LinkedList.
3. Elementen van een LinkedList wijzigen
De set()
methode van LinkedList
class wordt gebruikt om elementen van de LinkedList te wijzigen. Bijvoorbeeld,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> languages = new LinkedList<>();
// add elements in the linked list
languages.add("Java");
languages.add("Python");
languages.add("JavaScript");
languages.add("Java");
System.out.println("LinkedList: " + languages);
// change elements at index 3
languages.set(3, "Kotlin");
System.out.println("Updated LinkedList: " + languages);
}
}
Uitvoer
LinkedList: [Java, Python, JavaScript, Java] Updated LinkedList: [Java, Python, JavaScript, Kotlin]
In het bovenstaande voorbeeld hebben we een LinkedList met de naam talen gemaakt. Let op de lijn,
languages.set(3, "Kotlin");
Hier, de set()
methode verandert het element op index 3 naar Kotlin .
4. Element verwijderen uit een LinkedList
De remove()
methode van de LinkedList
class wordt gebruikt om een element uit de LinkedList te verwijderen. Bijvoorbeeld,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
LinkedList<String> languages = new LinkedList<>();
// add elements in LinkedList
languages.add("Java");
languages.add("Python");
languages.add("JavaScript");
languages.add("Kotlin");
System.out.println("LinkedList: " + languages);
// remove elements from index 1
String str = languages.remove(1);
System.out.println("Removed Element: " + str);
System.out.println("Updated LinkedList: " + languages);
}
}
Uitvoer
LinkedList: [Java, Python, JavaScript, Kotlin] Removed Element: Python New LinkedList: [Java, JavaScript, Kotlin]
Hier, de remove()
methode neemt het indexnummer als parameter. En verwijdert het element gespecificeerd door het indexnummer.
Voor meer informatie over het verwijderen van elementen uit de gekoppelde lijst, bezoek het Java-programma om elementen uit LinkedList te verwijderen.
Andere methoden
Methoden | Beschrijving |
---|---|
contains() | controleert of de LinkedList het element bevat |
indexOf() | retourneert de index van het eerste voorkomen van het element |
lastIndexOf() | retourneert de index van de laatste keer dat het element voorkomt |
clear() | verwijdert alle elementen van de LinkedList |
iterator() | retourneert een iterator om LinkedList te herhalen |
LinkedList als deque en wachtrij
Sinds de LinkedList
class implementeert ook de Queue- en de Deque-interface, het kan ook methoden van deze interfaces implementeren. Hier zijn enkele veelgebruikte methoden:
Methoden | Beschrijvingen |
---|---|
addFirst() | voegt het gespecificeerde element toe aan het begin van de gekoppelde lijst |
addLast() | voegt het gespecificeerde element toe aan het einde van de gekoppelde lijst |
getFirst() | retourneert het eerste element |
getLast() | geeft het laatste element terug |
removeFirst() | verwijdert het eerste element |
removeLast() | verwijdert het laatste element |
peek() | retourneert het eerste element (head) van de gekoppelde lijst |
poll() | retourneert en verwijdert het eerste element uit de gekoppelde lijst |
offer() | voegt het gespecificeerde element toe aan het einde van de gekoppelde lijst |
Voorbeeld:Java LinkedList als wachtrij
import java.util.LinkedList;
import java.util.Queue;
class Main {
public static void main(String[] args) {
Queue<String> languages = new LinkedList<>();
// add elements
languages.add("Python");
languages.add("Java");
languages.add("C");
System.out.println("LinkedList: " + languages);
// access the first element
String str1 = languages.peek();
System.out.println("Accessed Element: " + str1);
// access and remove the first element
String str2 = languages.poll();
System.out.println("Removed Element: " + str2);
System.out.println("LinkedList after poll(): " + languages);
// add element at the end
languages.offer("Swift");
System.out.println("LinkedList after offer(): " + languages);
}
}
Uitvoer
LinkedList: [Python, Java, C] Accessed Element: Python Removed Element: Python LinkedList after poll(): [Java, C] LinkedList after offer(): [Java, C, Swift]
Voorbeeld:LinkedList als Deque
import java.util.LinkedList;
import java.util.Deque;
class Main {
public static void main(String[] args){
Deque<String> animals = new LinkedList<>();
// add element at the beginning
animals.add("Cow");
System.out.println("LinkedList: " + animals);
animals.addFirst("Dog");
System.out.println("LinkedList after addFirst(): " + animals);
// add elements at the end
animals.addLast("Zebra");
System.out.println("LinkedList after addLast(): " + animals);
// remove the first element
animals.removeFirst();
System.out.println("LinkedList after removeFirst(): " + animals);
// remove the last element
animals.removeLast();
System.out.println("LinkedList after removeLast(): " + animals);
}
}
Uitvoer
LinkedList: [Cow] LinkedList after addFirst(): [Dog, Cow] LinkedList after addLast(): [Dog, Cow, Zebra] LinkedList after removeFirst(): [Cow, Zebra] LinkedList after removeLast(): [Cow]
Itereren via LinkedList
We kunnen de Java for-each-lus gebruiken om LinkedList te doorlopen. Bijvoorbeeld,
import java.util.LinkedList;
class Main {
public static void main(String[] args) {
// Creating a linked list
LinkedList<String> animals = new LinkedList<>();
animals.add("Cow");
animals.add("Cat");
animals.add("Dog");
System.out.println("LinkedList: " + animals);
// Using forEach loop
System.out.println("Accessing linked list elements:");
for(String animal: animals) {
System.out.print(animal);
System.out.print(", ");
}
}
}
Uitvoer
LinkedList: [Cow, Cat, Dog] Accessing linked list elements: Cow, Cat, Dog,
LinkedList vs. ArrayList
Zowel de Java ArrayList als LinkedList
implementeert de List
interface van de Collections
kader. Er bestaat echter een verschil tussen beide.
LinkedList | ArrayList |
---|---|
Implementeert List , Queue , en Deque interfaces. | Implementeert List interface. |
Slaat 3 waarden op (vorige adres , gegevens, en volgende adres ) in een enkele positie. | Slaat een enkele waarde op een enkele positie op. |
Biedt de implementatie van de dubbel gekoppelde lijst. | Biedt een aanpasbare array-implementatie. |
Telkens wanneer een element wordt toegevoegd, prev en next adres zijn gewijzigd. | Telkens wanneer een element wordt toegevoegd, worden alle elementen na die positie verschoven. |
Om toegang te krijgen tot een element, moeten we herhalen vanaf het begin tot aan het element. | Kan willekeurig toegang krijgen tot elementen met behulp van indexen. |
Opmerking :We kunnen ook een LinkedList maken met behulp van interfaces in Java. Bijvoorbeeld,
// create linkedlist using List
List<String> animals1 = new LinkedList<>();
// creating linkedlist using Queue
Queue<String> animals2 = new LinkedList<>();
// creating linkedlist using Deque
Deque<String> animals3 = new LinkedList<>();
Hier, als de LinkedList is gemaakt met behulp van één interface, kunnen we geen methoden gebruiken die door andere interfaces worden geboden. Dat wil zeggen, dieren1 kan geen methoden gebruiken die specifiek zijn voor Queue
en Deque
interfaces.
Java