Java LinkedList peek()-Methode

Java LinkedList Java LinkedList


peek()Die Methode ist in Java,LinkedListeine sehr nützliche Methode, die von der Klasse bereitgestellt wird. Sie wird verwendet, um das erste Element (Kopfelement) der verketteten Liste abzurufen, aber nicht zu entfernen. Diese Methode gehört zuQueueden Operationen der Schnittstelle,LinkedListund LinkedList implementiert diese Schnittstelle.

Methodensyntax:

public E peek()

Rückgabewert:

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

Methodenmerkmale

Nicht-destruktive Operation

peek()Die Methode "betrachtet" nur das erste Element der verketteten Liste, ohne es zu entfernen. Dies unterscheidet sich vonpoll()oderremove()der remove()-Methode, die das Element entfernt.

Null-Sicherheit

Wenn die verkettete Liste leer ist,peek()peek() gibt null zurücknullund löst keine Ausnahme aus, was siegetFirst()oderelement()in einigen Szenarien sicherer als element() macht.

Zeitkomplexität

DaLinkedListLinkedList ist auf Basis einer doppelt verketteten Liste implementiert,peek()Die Zeitkomplexität der Methode ist O(1), da sie nur auf den Kopfknoten zugreifen muss.


Anwendungsbeispiele

Einfaches Beispiel

Beispiel

import java.util.LinkedList;

public class PeekExample {
    public static void main(String[] args) {
        LinkedList<String> fruits = new LinkedList<>();
        fruits.add("Apfel");
        fruits.add("Banane");
        fruits.add("Cherry");
       
        // Verwende peek(), um das erste Element anzuzeigen
        String firstFruit = fruits.peek();
        System.out.println("Erste Frucht: " + firstFruit);  // Ausgabe: Erste Frucht: Apple
        System.out.println("LinkedList nach peek(): " + fruits);  // Ausgabe: [Apple, Banana, Cherry]
    }
}

Beispiel für eine leere verkettete Liste

Beispiel

import java.util.LinkedList;

public class EmptyListPeek {
    public static void main(String[] args) {
        LinkedList<Integer> numbers = new LinkedList<>();
       
        Integer firstNumber = numbers.peek();
        System.out.println("Erste Zahl: " + firstNumber);  // Ausgabe: Erste Zahl: null
    }
}

Vergleich mit anderen ähnlichen Methoden

peek() vs. getFirst()

Methode Verhalten bei leerer verketteter Liste Löst eine Ausnahme aus
peek() Gibt null zurück nein
getFirst() Löst NoSuchElementException aus Ja

4.2 peek() vs. element()

Methode Verhalten bei leerer verketteter Liste Löst eine Ausnahme aus
peek() Gibt null zurück nein
element() Löst NoSuchElementException aus Ja

4.3 peek() vs. poll()

Methode Ob es Elemente entfernt Verhalten bei leerer verketteter Liste
peek() nein Gibt null zurück
poll() Ja Gibt null zurück

Praktische Anwendungsszenarien

Verarbeitung von Nachrichtenwarteschlangen

Bei der Verarbeitung einer Nachrichtenwarteschlange müssen wir häufig die Nachricht am Kopf der Warteschlange ansehen, ohne sie zu entfernen:

Beispiel

LinkedList<Message> messageQueue = new LinkedList<>();
// ... Nachrichten zur Warteschlange hinzufügen

// Prüfen, aber die erste Nachricht nicht entfernen
Message nextMessage = messageQueue.peek();
if (nextMessage != null && nextMessage.isHighPriority()) {
    // Nachrichten mit hoher Priorität verarbeiten
}

Aufgabenplanungssystem

In einem Aufgabenplanungssystem,peek()peek() kann verwendet werden, um die nächste auszuführende Aufgabe zu überprüfen:

Beispiel

LinkedList<Task> taskQueue = new LinkedList<>();
// ... Aufgaben zur Warteschlange hinzufügen

Task nextTask = taskQueue.peek();
if (nextTask != null && nextTask.isReadyToExecute()) {
    // Aufgabe ausführen
}

Browser-Verlauf

Simulieren Sie das Anzeigen der zuletzt besuchten Seite in einem Browser, ohne sie aus dem Verlauf zu entfernen:

Beispiel

LinkedList<String> browserHistory = new LinkedList<>();
// ... Besuchsdatensätze hinzufügen

String lastVisited = browserHistory.peek();
System.out.println("Zuletzt besuchte Seite: " + lastVisited);

Hinweise

  1. Umgang mit Nullwerten: Dapeek()peek() kann null zurückgebennull, sollten Sie eine Nullprüfung durchführen, bevor Sie den Rückgabewert verwenden, um zu vermeidenNullPointerException。

  2. Nebenläufige Umgebung:LinkedListLinkedList ist nicht thread-sicher. Wenn sie in einer Multithread-Umgebung verwendet wird,peek(), sind zusätzliche Synchronisierungsmaßnahmen erforderlich.

  3. Leistungsüberlegungen: Obwohlpeek()die Operation selbst O(1) ist, müssen Sie möglicherweise effizientere Datenstrukturen in Betracht ziehen, wenn sie häufig zusammen mit anderen Operationen aufgerufen wird.

  4. Vergleich mit Stack-Operationen: WennLinkedListLinkedList als Stack verwendet wird,peek()peek() zeigt das erste Element (die Spitze des Stapels) an, was dasselbe ist wieStackder Stack-Klassepeek()Verhalten der peek()-Methode.

Java LinkedList Java LinkedList

Weitere Erweiterungen