Java LinkedList get()-Methode
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 anindexist 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:
- Prüfen, ob der Index gültig ist (0 ≤ index < size)
- Beginnt die Traversierung vom Kopf oder Ende der verketteten Liste (vom näheren Ende beginnend)
- Geht Knoten für Knoten weiter, bis der Knoten an der angegebenen Position gefunden ist
- Gib das an diesem Knoten gespeicherte Element zurück
Anwendungsbeispiele
Grundlegende Verwendung
Beispiel
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
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
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:
getFirst(): das erste Element abrufengetLast(): das letzte Element abrufenpeek(): erstes Element abrufen, aber nicht entfernen (gibt null zurück, wenn die Liste leer ist)peekFirst(): dasselbe wie peek()peekLast(): letztes Element abrufen, aber nicht entfernen (gibt null zurück, wenn die Liste leer ist)
Beispiel
Beispiel
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
Vermeiden Sie die häufige Verwendung der get()-Methode: Da
LinkedListvonget()die Methode eine geringere Leistung hat, wenn Sie häufigen wahlfreien Zugriff benötigen, sollten Sie die Verwendung erwägenArrayList。Verwenden Sie einen Iterator zum Durchlaufen: Wenn Sie
LinkedListeine LinkedList durchlaufen müssen, ist die Verwendung eines Iterators effizienter als die Verwendungget()der get()-Methode:
Beispiel
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());
}
- Überprüfen Sie den Indexbereich: Bevor Sie
get()die Methode verwenden, sollten Sie am besten prüfen, ob der Index gültig ist:
Beispiel
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