Java-iteraattori on yksi yleisimmin käytetyistä kohdistimet Java Collections Frameworkissa . Sitä käytetään kokoelman elementtien läpikulkuun tai iterointiin yksitellen.
- Sitä käytetään elementtien ajamiseen vain eteenpäin.
- Poistaa elementit turvallisesti läpikäynnin aikana poista()-toiminnolla.
- Iterator on yleinen kohdistin, joka koskee kaikkia kokoelmatyyppejä — List Set ja Queue.
Iteraattorin julistus
julkisen käyttöliittymän iteraattori
Tässä E edustaa iteroitavien elementtien tyyppiä.
Iteratorin objektin luominen
Iterator-objekti luodaan kutsumalla kokoelmaobjektin iterator()-metodia. Tässä käytämme Iteraattoria jokaisen elementin läpi kulkemiseen ja tulostamiseen ArrayList .
JavaKokoelma
nimet = uusi ArrayList<>();
Iteraattoriitr = nimet.iterator(); execvp
import java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Create an ArrayList and add some elements ArrayList<String> al = new ArrayList<>(); al.add('A'); al.add('B'); al.add('C'); // Obtain an iterator for the ArrayList Iterator<String> it = al.iterator(); // Iterate through the elements and print each one while (it.hasNext()) { // Get the next element String n = it.next(); System.out.println(n); } } }
Lähtö
A B C
Iteratorin hierarkia
Iteraattori on osa java.util-paketti ja kaikki kokoelmaluokat toteuttavat sen alirajapintojensa kautta.
Iteraattori-kursoriIteraattorirajapinnan menetelmät
Iteraattorin käyttöliittymä määrittelee kolme alla lueteltua menetelmää:
- hasNext(): Palauttaa tosi, jos iteraatiossa on enemmän elementtejä.
- seuraava(): Palauttaa iteroinnin seuraavan elementin. Se heittää NoSuchElementException jos elementtejä ei ole enempää.
- poistaa(): Poistaa viimeisen elementin, jonka next() palauttaa. Tätä menetelmää voidaan kutsua vain kerran per kutsu next().
Huom : Remove() -menetelmä voi antaa kaksi poikkeusta, nimittäin seuraavasti:
Sisäinen työskentely
Tässä osiossa yritämme ymmärtää, kuinka Java Iterator ja sen menetelmät toimivat sisäisesti. Otetaan seuraava LinkedList-objekti ymmärtääksemme tämän toiminnon.
Vaihe 1: Luokaamme nyt Iterator-objekti List-objektiin alla olevan kuvan mukaisesti:
Iteraattori
kaupungitIterator = kaupungit.iteraattori();
"CitiesIteartor"-iteraattori näyttää seuraavalta:
csv-tiedosto lue java
Vaihe-1Tässä Iteratorin kohdistin osoittaa ennen luettelon ensimmäistä elementtiä.
Vaihe 2: Nyt suoritamme seuraavan koodinpätkän.
cityIterator.hasNext();
townsIterator.next();
Vaihe-2Kun suoritamme yllä olevan koodinpätkän, Iteratorin kohdistin osoittaa luettelon ensimmäiseen elementtiin yllä olevan kaavion mukaisesti.
t varvastossu
Vaihe 3: Nyt suoritamme seuraavan koodinpätkän.
cityIterator.hasNext();
townsIterator.next();
Vaihe-3
Kun suoritamme yllä olevan koodinpätkän, Iteratorin kohdistin osoittaa luettelon toiseen elementtiin yllä olevan kaavion mukaisesti.
java-merkkijono sisältää
Vaihe 4: Tee tämä prosessi päästäksesi iteraattorin kohdistin luettelon loppuelementtiin.
Vaihe-4Vaihe 5: Luettuaan viimeisen elementin, jos suoritamme alla olevan koodinpätkän, se palauttaa väärän arvon.
townsIterator.hasNext();

Kuten Iteratorin kohdistin osoittaa luettelon viimeisen elementin jälkeen hasNext() menetelmä palauttaa väärän arvon.
Huomautus: Java Iterator tukee vain eteenpäin suuntautuvaa iteraatiota, joten se tunnetaan yksisuuntaisena kohdistimena. Sitä vastoin ListIterator on kaksisuuntainen ja mahdollistaa kulkemisen molempiin suuntiin.
Java Iterator: Eteenpäin suuntaEsimerkki: Tässä käytämme Iteraattoria kulkemaan ja poistamaan parittomat elementit ArrayLististä.
Javaimport java.util.ArrayList; import java.util.Iterator; public class Geeks { public static void main(String[] args) { // Creating an ArrayList of Integer type ArrayList<Integer> al = new ArrayList<>(); // Adding elements to the ArrayList for (int i = 0; i < 10; i++) { al.add(i); } // Printing the original list System.out.println('Original List: ' + al); // Creating an Iterator for the ArrayList Iterator<Integer> itr = al.iterator(); // Iterating through the list and removing odd elements while (itr.hasNext()) { // Getting the next element int i = itr.next(); System.out.print(i + ' '); // Removing odd elements if (i % 2 != 0) { itr.remove(); } } System.out.println(); // Printing the modified list after removal of odd elements System.out.println('Modified List: ' + al); } }
Lähtö
Original List: [0 1 2 3 4 5 6 7 8 9] 0 1 2 3 4 5 6 7 8 9 Modified List: [0 2 4 6 8]
Selitys: Yllä olevassa esimerkissä luomme kokonaislukujen ArrayListin ja iteroimme sen läpi Iteraattorilla ja poistamme kaikki parittomat luvut. Se tulostaa luettelon ennen ja jälkeen parittomien elementtien poistamisen ja tulostaa muokatun luettelon vain parillisilla luvuilla.