Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

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

  1. Java-operators
  2. Java-opmerkingen
  3. Java voor elke lus
  4. Java-strings
  5. Java-interface
  6. Java anonieme klasse
  7. Java proberen-met-bronnen
  8. Java-annotaties
  9. Java-beweringen
  10. Java-vector
  11. Java 8 - Beknopte handleiding