In diesem Tutorial lernen wir anhand eines Beispiels die Java ListIterator-Oberfläche kennen.
Die ListIterator
Schnittstelle des Java-Sammlungsframeworks bietet die Funktionalität für den Zugriff auf Elemente einer Liste.
Es ist bidirektional. Dies bedeutet, dass wir Elemente einer Liste in beide Richtungen iterieren können.
Es erweitert die Iterator
Schnittstelle.
Die List
Schnittstelle bietet eine listIterator()
Methode, die eine Instanz der ListIterator
Schnittstelle zurückgibt .
Methoden von ListIterator
Die ListIterator
Schnittstelle bietet Methoden, mit denen verschiedene Operationen an den Elementen einer Liste ausgeführt werden können.
hasNext()
- gibt true zurück, wenn ein Element in der Liste vorhanden istnext()
- gibt das nächste Element der Liste zurücknextIndex()
Gibt den Index des Elements zurück, das dienext()
Methode zurückgeben wirdprevious()
- gibt das vorherige Element der Liste zurückpreviousIndex()
- gibt den Index des Elements zurück, das dieprevious()
Methode zurückgeben wirdremove()
- Entfernt das von entwedernext()
oder zurückgegebene Elementprevious()
set()
- ersetzt das von entwedernext()
oderprevious()
durch das angegebene Element zurückgegebene Element
Beispiel 1: Implementierung von ListIterator
Im Beispiel unten haben wir die umgesetzt next()
, nextIndex()
und hasNext()
Methoden der ListIterator
Schnittstelle in einer Array - Liste.
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); // Using the next() method int number1 = iterate.next(); System.out.println("Next Element: " + number1); // Using the nextIndex() int index1 = iterate.nextIndex(); System.out.println("Position of Next Element: " + index1); // Using the hasNext() method System.out.println("Is there any next element? " + iterate.hasNext()); ) )
Ausgabe
ArrayList: (1, 3, 2) Nächstes Element: 1 Position des nächsten Elements: 1 Gibt es ein nächstes Element? wahr
Beispiel 2: Implementierung von ListIterator
Im folgenden Beispiel haben wir die Methoden previous()
und previousIndex()
der ListIterator
Schnittstelle in einer Array-Liste implementiert .
import java.util.ArrayList; import java.util.ListIterator; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); // Creating an instance of ListIterator ListIterator iterate = numbers.listIterator(); iterate.next(); iterate.next(); // Using the previous() method int number1 = iterate.previous(); System.out.println("Previous Element: " + number1); // Using the previousIndex() int index1 = iterate.previousIndex(); System.out.println("Position of the Previous element: " + index1); ) )
Ausgabe
ArrayList: (1, 3, 2) Vorheriges Element: 3 Position des vorherigen Elements: 0
Im obigen Beispiel war die Instanz von anfangs Iterator
vor 1. Da vor 1 kein Element vorhanden war, wird beim Aufrufen der previous()
Methode eine Ausnahme ausgelöst.
Wir haben die next()
Methoden dann 2 Mal angewendet . Jetzt liegt die Iterator
Instanz zwischen 3 und 2.
Daher gibt die previous()
Methode 3 zurück.