In deze tutorial leren we aan de hand van een voorbeeld over de Java ListIterator-interface.
De ListIterator
interface van het Java-verzamelingsraamwerk biedt de functionaliteit om toegang te krijgen tot elementen van een lijst.
Het is bidirectioneel. Dit betekent dat het ons in staat stelt om elementen van een lijst in beide richtingen te herhalen.
Het breidt de Iterator
interface uit.
De List
interface biedt een listIterator()
methode die een instantie van de ListIterator
interface retourneert .
Methoden van ListIterator
De ListIterator
interface biedt methoden die kunnen worden gebruikt om verschillende bewerkingen uit te voeren op de elementen van een lijst.
hasNext()
- geeft true terug als er een element in de lijst bestaatnext()
- geeft het volgende element van de lijst terugnextIndex()
geeft de index terug van het element dat denext()
methode zal retournerenprevious()
- geeft het vorige element van de lijst terugpreviousIndex()
- geeft de index terug van het element dat deprevious()
methode zal retournerenremove()
- verwijdert het element geretourneerd doornext()
ofprevious()
set()
- vervangt het element dat wordt geretourneerd doornext()
ofprevious()
door het opgegeven element
Voorbeeld 1: implementatie van ListIterator
In het onderstaande voorbeeld hebben we de next()
, nextIndex()
en hasNext()
methoden van de ListIterator
interface geïmplementeerd in een arraylijst.
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()); ) )
Uitvoer
ArrayList: (1, 3, 2) Volgend element: 1 Positie van volgend element: 1 Is er een volgend element? waar
Voorbeeld 2: implementatie van ListIterator
In het onderstaande voorbeeld hebben we de previous()
en previousIndex()
methoden van de ListIterator
interface geïmplementeerd in een arraylijst.
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); ) )
Uitvoer
ArrayList: (1, 3, 2) Vorig element: 3 Positie van het vorige element: 0
In het bovenstaande voorbeeld was de instantie van de aanvankelijk Iterator
vóór 1. Aangezien er geen element vóór 1 was, zal het aanroepen van de previous()
methode een uitzondering genereren.
We hebben de next()
methoden vervolgens 2 keer gebruikt. Nu ligt de Iterator
instantie tussen 3 en 2.
Daarom previous()
retourneert de methode 3.