Java LinkedList get()-Methode

Java LinkedList Java LinkedList


get()Die Methode ist in JavaLinkedListeine gängige Methode, die von der Klasse bereitgestellt wird und verwendet wird, um das Element an der angegebenen Position aus der verketteten Liste abzurufen.LinkedListist im Java Collections FrameworkListeine Implementierungsklasse der Schnittstelle, die eine doppelt verkettete Liste als Datenstruktur verwendet, um Elemente zu speichern.

get()Die grundlegende Syntax der Methode lautet wie folgt:

E get(int index)

Wobei:

  • EGibt den Typ der Elemente in der verketteten Liste an
  • indexist die Position des abzurufenden Elements (Zählung ab 0)

Wie die Methode get() funktioniert

LinkedListvonget()Die Methode ruft das Element an der angegebenen Position ab, indem sie die verkettete Liste durchläuft. DaLinkedListsie auf einer verketteten Liste basiert, im Gegensatz dazuArrayListkann sie nicht direkt per Index zufällig auf Elemente zugreifen.

Beim Aufrufget(index)die Methode,LinkedListSie wird:

  1. Prüfen, ob der Index gültig ist (0 ≤ index < size)
  2. Beginnt die Traversierung vom Kopf oder Ende der verketteten Liste (vom näheren Ende beginnend)
  3. Geht Knoten für Knoten weiter, bis der Knoten an der angegebenen Position gefunden ist
  4. Gib das an diesem Knoten gespeicherte Element zurück

Anwendungsbeispiele

Grundlegende Verwendung

Beispiel

import java.util.LinkedList;

public class LinkedListGetExample {
    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");
        fruits.add("Durian");
       
        // Verwende die get()-Methode, um Elemente abzurufen
        String firstFruit = fruits.get(0);  // Erstes Element abrufen
        String thirdFruit = fruits.get(2);  // Drittes Element abrufen
       
        System.out.println(Erste Frucht: + firstFruit);  // Ausgabe: Apple
        System.out.println(Dritte Frucht: + thirdFruit);  // Ausgabe: Cherry
    }
}

Durchlaufen einer LinkedList

Beispiel

import java.util.LinkedList;

public class LinkedListTraversal {
    public static void main(String[] args) {
        LinkedList<Integer> numbers = new LinkedList<>();
        numbers.add(10);
        numbers.add(20);
        numbers.add(30);
        numbers.add(40);
       
        // Verwende die get()-Methode, um die LinkedList zu durchlaufen
        for (int i = 0; i < numbers.size(); i++) {
            System.out.println(Nr. + i + Element: + numbers.get(i));
        }
    }
}

Leistungsüberlegungen

LinkedListvonget()Die Zeitkomplexität der Methode ist O(n), da sie die verkettete Liste vom Kopf oder Ende durchlaufen muss, um das Element an der angegebenen Position zu finden. Dies steht im Gegensatz zuArrayListder O(1)-Zeitkomplexität des Letzteren.

Wenn Sie daher häufigen wahlfreien Zugriff auf Elemente benötigen,ArrayListkann eine bessere Wahl sein. WährendLinkedListbei häufigen Einfüge- und Löschvorgängen eine bessere Leistung erbringt.


Ausnahmebehandlung

Bei Verwendung derget()Methode, wenn der übergebene Index außerhalb des gültigen Bereichs liegt (index < 0 oder index ≥ size), wird eine Ausnahme ausgelöstIndexOutOfBoundsException。

Sicheres Verwendungsbeispiel

Beispiel

import java.util.LinkedList;

public class SafeGetExample {
    public static void main(String[] args) {
        LinkedList<String> colors = new LinkedList<>();
        colors.add("Red");
        colors.add("Green");
        colors.add("Blue");
       
        int index = 3;  // Index außerhalb des gültigen Bereichs
       
        try {
            String color = colors.get(index);
            System.out.println(color);
        } catch (IndexOutOfBoundsException e) {
            System.out.println(Fehler: Index + index + außerhalb des Bereichs. Listengröße ist + colors.size());
        }
    }
}

Alternative Methoden

Außerdemget()die Methode,LinkedListDie LinkedList-Klasse bietet auch andere Methoden, um Elemente abzurufen:

  1. getFirst(): das erste Element abrufen
  2. getLast(): das letzte Element abrufen
  3. peek(): erstes Element abrufen, aber nicht entfernen (gibt null zurück, wenn die Liste leer ist)
  4. peekFirst(): dasselbe wie peek()
  5. peekLast(): letztes Element abrufen, aber nicht entfernen (gibt null zurück, wenn die Liste leer ist)

Beispiel

Beispiel

import java.util.LinkedList;

public class AlternativeMethods {
    public static void main(String[] args) {
        LinkedList<String> books = new LinkedList<>();
        books.add("Java Programming");
        books.add("Data Structures");
        books.add("Algorithms");
       
        System.out.println(Erstes Buch: + books.getFirst());
        System.out.println(Letztes Buch: + books.getLast());
        System.out.println("peek(): " + books.peek());
        System.out.println("peekLast(): " + books.peekLast());
    }
}

Best Practices

  1. Vermeiden Sie die häufige Verwendung der get()-Methode: DaLinkedListvonget()die Methode eine geringere Leistung hat, wenn Sie häufigen wahlfreien Zugriff benötigen, sollten Sie die Verwendung erwägenArrayList。

  2. Verwenden Sie einen Iterator zum Durchlaufen: Wenn SieLinkedListeine LinkedList durchlaufen müssen, ist die Verwendung eines Iterators effizienter als die Verwendungget()der get()-Methode:

Beispiel

// Effizientere Möglichkeit zum Iterieren
for (String fruit : fruits) {
    System.out.println(fruit);
}

// Oder verwenden Sie einen Iterator
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}
  1. Überprüfen Sie den Indexbereich: Bevor Sieget()die Methode verwenden, sollten Sie am besten prüfen, ob der Index gültig ist:

Beispiel

if (index >= 0 && index < list.size()) {
    return list.get(index);
} else {
    // Ungültige Indexfälle behandeln
}

Zusammenfassung

LinkedListvonget()Die Methode ist eine grundlegende, aber wichtige Methode; sie ermöglicht uns, über den Index auf Elemente in der verketteten Liste zuzugreifen. Obwohl ihre Leistung nicht so gut ist wieArrayListdie entsprechende Methode, in manchen Szenarien (wie häufiges Einfügen und Löschen)LinkedListist sie dennoch eine bessere Wahl. Das Verständnis dafürget()wie die Methode funktioniert und welche Leistungsmerkmale sie hat, kann uns helfen, in der tatsächlichen Entwicklung vernünftigere Entscheidungen bei Datenstrukturen zu treffen.

Java LinkedList Java LinkedList

Andere Erweiterungen