Tässä opetusohjelmassa opitaan Java ListIterator -käyttöliittymästä esimerkin avulla.
ListIterator
Rajapinta Java kokoelmien puitteet tarjoaa toiminnot pääsyä elementtejä luettelon.
Se on kaksisuuntainen. Tämä tarkoittaa sitä, että voimme toistaa luettelon elementit molempiin suuntiin.
Se laajentaa Iterator
käyttöliittymää.
List
Rajapinta tarjoaa listIterator()
menetelmän, joka palauttaa esiintymä ListIterator
käyttöliittymä.
ListIterator-menetelmät
ListIterator
Käyttöliittymä tarjoaa menetelmiä, joita voidaan käyttää suorittamaan eri operaatioita elementit lista.
hasNext()
- palauttaa arvon true, jos luettelossa on elementtinext()
- palauttaa luettelon seuraavan elementinnextIndex()
palauttaa sen elementin indeksin, jonkanext()
menetelmä palauttaaprevious()
- palauttaa luettelon edellisen elementinpreviousIndex()
- palauttaaprevious()
menetelmän palauttaman elementin indeksinremove()
- poistaa jommankummannext()
taiprevious()
set()
- korvaa palautetun elementin jommallakummallanext()
taiprevious()
määritetyllä elementillä
Esimerkki 1: ListIteratorin toteutus
Alla olevassa esimerkissä, olemme toteuttaneet next()
, nextIndex()
ja hasNext()
menetelmät ListIterator
rajapinnan array luetteloon.
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()); ) )
Tuotos
ArrayList: (1, 3, 2) Seuraava elementti: 1 Seuraavan elementin sijainti: 1 Onko seuraavaa elementtiä? totta
Esimerkki 2: ListIteratorin toteutus
Alla olevassa esimerkissä olemme toteuttaneet käyttöliittymän previous()
ja previousIndex()
menetelmät ListIterator
taulukko-luettelossa.
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); ) )
Tuotos
ArrayList: (1, 3, 2) Edellinen elementti: 3 Edellisen elementin sijainti: 0
Yllä olevassa esimerkissä aluksi a: n esiintymä Iterator
oli ennen 1. Koska ennen 1: tä ei ollut elementtiä, previous()
menetelmän kutsuminen aiheuttaa poikkeuksen.
Sitten käytimme next()
menetelmiä 2 kertaa. Nyt Iterator
esiintymä on välillä 3 ja 2.
Siksi previous()
menetelmä palauttaa arvon 3.