Java LinkedList poll()-Methode

Java LinkedList Java LinkedList


poll()Die Methode ist in JavaLinkedListeine sehr nützliche Methode, die von der Klasse bereitgestellt wird und dazu dient, das erste Element (Kopfelement) der Liste abzurufen und zu entfernen. Diese Methode gehört zuQueueTeil der Schnittstelle,LinkedListimplementiert diese Schnittstelle, sodass sie als Warteschlange verwendet werden kann.

Methodensyntax:

public E poll()

Rückgabewert:

  • Wenn die Liste nicht leer ist, gibt sie das erste Element der Liste zurück
  • Wenn die Liste leer ist, gibt sie zurücknull

Methodeneigenschaften

Vergleich mit ähnlichen Methoden

In JavasLinkedListEs gibt mehrere ähnliche Methoden, die verwendet werden können, um das Kopfelement abzurufen und zu entfernen:

Methode Verhaltensbeschreibung Verhalten bei leerer Liste
poll() Ruft das Kopfelement ab und entfernt es Gibt null zurück
remove() Ruft das Kopfelement ab und entfernt es Löst NoSuchElementException aus
pop() Ruft das Kopfelement ab und entfernt es (Stack-Operation) Löst NoSuchElementException aus
pollFirst() Ruft das erste Element ab und entfernt es (wie poll()) Gibt null zurück

Zeitkomplexität

poll()Die Zeitkomplexität der Methode ist O(1), weil sie nur das erste Element der Liste entfernt und zurückgibt, ohne die gesamte Liste zu durchlaufen.


Anwendungsbeispiele

Grundlegende Verwendung

Beispiel

import java.util.LinkedList;

public class PollExample {
    public static void main(String[] args) {
        // Erstelle eine LinkedList
        LinkedList<String> fruits = new LinkedList<>();
       
        // Elemente hinzufügen
        fruits.add("Apfel");
        fruits.add("Banane");
        fruits.add("Cherry");
       
        System.out.println("Ursprüngliche Liste: " + fruits);  // Ausgabe: [Apple, Banana, Cherry]
       
        // Verwende die poll()-Methode
        String firstFruit = fruits.poll();
       
        System.out.println("Entferntes Element: " + firstFruit);  // Ausgabe: Apple
        System.out.println("Aktualisierte Liste: " + fruits);    // Ausgabe: [Banana, Cherry]
    }
}

Umgang mit leeren Listen

Beispiel

import java.util.LinkedList;

public class EmptyListExample {
    public static void main(String[] args) {
        LinkedList<String> emptyList = new LinkedList<>();
       
        // Verwende poll() bei einer leeren Liste
        String result = emptyList.poll();
       
        System.out.println("Ergebnis: " + result);  // Ausgabe: null
    }
}

Verwendung in Warteschlangenoperationen

Beispiel

import java.util.LinkedList;
import java.util.Queue;

public class QueueExample {
    public static void main(String[] args) {
        // LinkedList als Warteschlange verwenden
        Queue<Integer> queue = new LinkedList<>();
       
        // Einfügeoperation
        queue.offer(10);
        queue.offer(20);
        queue.offer(30);
       
        System.out.println("Warteschlangeninhalt: " + queue);  // Ausgabe: [10, 20, 30]
       
        // Dequeue-Operation
        while (!queue.isEmpty()) {
            int num = queue.poll();
            System.out.println("Verarbeitet: " + num);
        }
       
        System.out.println("Endgültiger Warteschlangenzustand: " + queue);  // Ausgabe: []
    }
}

Praktische Anwendungsszenarien

poll()Die Methode ist besonders nützlich in den folgenden Szenarien:

  1. Warteschlangenverarbeitung: Bei VerwendungLinkedListals Warteschlange,poll()ist die Standard-Dequeue-Operation.
  2. Aufgabenplanung: Eine Aufgabenliste abarbeiten, wobei jeweils die erste Aufgabe zur Ausführung entnommen wird.
  3. Breitensuche: In Algorithmen zur Graph- oder Baumdurchquerung wird dies verwendet, um den nächsten zu verarbeitenden Knoten aus der Warteschlange zu entnehmen.
  4. Nachrichtenverarbeitung: In einer Nachrichtenwarteschlange die nächste Nachricht entnehmen und verarbeiten.

Hinweise

  1. Umgang mit leeren Listen: Im Gegensatz zurremove()Methode,poll()löst keine Ausnahme aus, wenn die Liste leer ist, sondern gibt stattdessen zurücknull. Dadurch ist es besser geeignet, wenn Sie sich nicht sicher sind, ob die Liste leer ist.
  2. Generische Typen: Stellen Sie sicher, dass der Rückgabewerttyp korrekt behandelt wird, umClassCastException。
  3. Nebenläufige Umgebung:LinkedListist nicht threadsicher; wenn es in einer Multithread-Umgebung verwendet wird, müssen Synchronisationsprobleme berücksichtigt werden.

Durch die Beherrschung derpoll()-Methode können Sie effektiver nutzenLinkedListals Warteschlange und schreiben Sie saubereren, robusteren Java-Code.

Java LinkedList Java LinkedList

Andere Erweiterungen