V tomto tutoriáli sa pomocou príkladu dozvieme o rozhraní Java ListIterator.
ListIterator
Rozhranie zbierok rámca Java poskytuje funkcie pre prístup k prvkom zoznamu.
Je obojsmerný. To znamená, že nám umožňuje iterovať prvky zoznamu v oboch smeroch.
Rozširuje Iterator
rozhranie.
List
Rozhranie poskytuje listIterator()
metódu, ktorá vracia inštanciu ListIterator
rozhrania.
Metódy ListIterator
ListIterator
Rozhranie poskytuje metódy, ktoré môžu byť použité na vykonávanie rôznych operácií na prvky zozname.
hasNext()
- vráti hodnotu true, ak v zozname existuje prvoknext()
- vráti nasledujúci prvok zoznamunextIndex()
vráti index prvku, ktorýnext()
vráti metódaprevious()
- vráti predchádzajúci prvok zoznamupreviousIndex()
- vráti index prvku, ktorýprevious()
vráti metódaremove()
- odstráni prvok vrátený buďnext()
aleboprevious()
set()
- nahradí prvok vrátený buď zadaným prvkom,next()
aleboprevious()
zadaným
Príklad 1: Implementácia ListIterator
V príklade nižšie sme implementovali rozhrania next()
, nextIndex()
a hasNext()
metódy ListIterator
rozhrania do zoznamu 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ýkon
ArrayList: (1, 3, 2) Ďalší prvok: 1 Pozícia nasledujúceho prvku: 1 Existuje nejaký ďalší prvok? pravda
Príklad 2: Implementácia ListIterator
V nižšie uvedenom príklade sme realizovali previous()
a previousIndex()
metódy ListIterator
rozhrania v zozname poľa.
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ýkon
ArrayList: (1, 3, 2) Predchádzajúci prvok: 3 Poloha predchádzajúceho prvku: 0
Vo vyššie uvedenom príklade bola inštancia pôvodne Iterator
pred 1. Pretože pred 1 nebol žiadny prvok, volanie previous()
metódy vyvolá výnimku.
next()
Metódy sme potom použili dvakrát. Teraz bude Iterator
inštancia medzi 3 a 2.
Preto previous()
metóda vracia 3.