I denne vejledning lærer vi om Java ListIterator-interface ved hjælp af et eksempel.
Den ListIterator
grænsefladen af Java kollektioner rammer giver funktionalitet for at få adgang elementer i en liste.
Det er tovejs. Dette betyder, at det giver os mulighed for at gentage elementer på en liste i begge retninger.
Det udvider Iterator
grænsefladen.
Den List
grænsefladen tilvejebringer en listIterator()
metode, der returnerer en instans af ListIterator
grænsefladen.
Metoder til ListIterator
Den ListIterator
grænseflade tilvejebringer fremgangsmåder, der kan anvendes til at udføre forskellige operationer på elementerne i en liste.
hasNext()
- returnerer sandt, hvis der findes et element på listennext()
- returnerer det næste element på listennextIndex()
returnerer indekset for det element, somnext()
metoden vil returnereprevious()
- returnerer det forrige element på listenpreviousIndex()
- returnerer indekset for det element, somprevious()
metoden vil returnereremove()
- fjerner det element, der returneres af entennext()
ellerprevious()
set()
- erstatter elementet, der returneres af entennext()
ellerprevious()
med det angivne element
Eksempel 1: Implementering af ListIterator
I eksemplet nedenfor, har vi implementeret de next()
, nextIndex()
og hasNext()
metoder for den ListIterator
grænseflade i et array listen.
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()); ) )
Produktion
ArrayList: (1, 3, 2) Næste element: 1 Position for næste element: 1 Er der noget næste element? sand
Eksempel 2: Implementering af ListIterator
I eksemplet nedenfor har vi implementeret previous()
og previousIndex()
metoderne til ListIterator
grænsefladen i en matrixliste.
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); ) )
Produktion
ArrayList: (1, 3, 2) Previous Element: 3 Position of the Previous Element: 0
I ovenstående eksempel var oprindeligt forekomsten af Iterator
før 1. Da der ikke var noget element før 1, så kalder previous()
metoden en undtagelse.
Vi brugte derefter next()
metoderne 2 gange. Nu vil Iterator
forekomsten være mellem 3 og 2.
Derfor previous()
returnerer metoden 3.