V tomto kurzu se na příkladu dozvíme o rozhraní Java ListIterator.
ListIterator
Rozhraní sbírek rámce Java poskytuje funkce pro přístup k prvkům seznamu.
Je obousměrný. To znamená, že nám umožňuje iterovat prvky seznamu v obou směrech.
Rozšiřuje Iterator
rozhraní.
List
Rozhraní poskytuje listIterator()
metodu, která vrací instanci ListIterator
rozhraní.
Metody ListIterator
ListIterator
Rozhraní poskytuje metody, které mohou být použity k provádění různých operací na prvky seznamu.
hasNext()
- vrátí hodnotu true, pokud v seznamu existuje prveknext()
- vrátí další prvek seznamunextIndex()
vrací index prvku, kterýnext()
metoda vrátíprevious()
- vrátí předchozí prvek seznamupreviousIndex()
- vrátí index prvku, kterýprevious()
metoda vrátíremove()
- odebere prvek vrácený buďnext()
neboprevious()
set()
- nahradí prvek vrácený buďnext()
neboprevious()
zadaným prvkem
Příklad 1: Implementace ListIterator
V níže uvedeném příkladu jsme implementovali rozhraní next()
, nextIndex()
a hasNext()
metody ListIterator
rozhraní v seznamu polí.
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()); ) )
Výstup
ArrayList: (1, 3, 2) Další prvek: 1 Pozice dalšího prvku: 1 Existuje nějaký další prvek? skutečný
Příklad 2: Implementace ListIterator
V níže uvedeném příkladu jsme implementovali metody previous()
a previousIndex()
metody ListIterator
rozhraní v seznamu polí.
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); ) )
Výstup
ArrayList: (1, 3, 2) Předchozí prvek: 3 Poloha předchozího prvku: 0
Ve výše uvedeném příkladu byla původně instance Iterator
před 1. Protože před 1 nebyl žádný prvek, volání previous()
metody vyvolá výjimku.
next()
Metody jsme poté použili dvakrát. Nyní bude Iterator
instance mezi 3 a 2.
Proto previous()
metoda vrací 3.